unity开发Hololens 制作滑动框

一定要做到最后一步,才会有效果

1、创建空物体 ,并添加组件

创建空物体 命名ScrollingObjectCollection,

添加组件如下图

下面是各个组件展开的内容



2、在ScrollingObjectCollection 下面创建两个空物体,分别命名Container、Clipping Bounds

Clipping Bounds添加组件

3、在Container空物体下面创建空物体,命名GridObjectCollection,然后在下面创建滑动框内要显示的内容,以我的为例,显示文字 以及按钮

GridObjectCollection需要挂载脚本

显示内容的结构,按钮是hololens自带的按钮,,然后多复制几个Prerfab

4、布局滑动框里的内容

找到GridObjectCollection物体,点击CridObjectCollection脚本中的UpdateCollection

CellWidth和CellHeight 单元格的宽高,可以使用默认的就行

5、设置滑动框的大小,以及每页显示的内容数量

先把元素摆放到合适的位置,以及调整合适的大小

然后调整Collider

6、设置遮罩效果

找到Clipping Bounds物体,把所有元素里包含MeshRenderer的物体都拖入到这里

由于太多,我使用了代码自动添加,在ClippingBox脚本的最后添加上这些代码,就可以了

csharp 复制代码
   void OnValidate()
   {
       ConfigureRenderers();
   }
   void ConfigureRenderers()
   {
       List<Renderer> renderer = new List<Renderer>();
       GetRenderers(transform.parent, renderer);
       renderers = renderer;
   }

   void GetRenderers(Transform parent, List<Renderer> renderers)
   {
       foreach (Transform child in parent)
       {
           Renderer renderer = child.GetComponent<Renderer>();
           if (renderer != null)
           {
               renderers.Add(renderer);
           }
           GetRenderers(child, renderers);
       }
   }

这个时候才算是真正的做完,

创建蓝色背景板

创建空物体Backplate,下面再创建一个空物体Quad,并添加组件


7、ClippingBox脚本的Renderers一定要把所有MeshRenderer元素添加到列表中,否则没有遮罩效果

相关推荐
虾球xz1 小时前
游戏引擎学习第244天: 完成异步纹理下载
c++·学习·游戏引擎
太妃糖耶5 小时前
URP-利用矩阵在Shader中实现物体的平移和缩放
unity·矩阵
Magnum Lehar8 小时前
ApophisZerg游戏引擎项目目录展示
人工智能·vscode·编辑器·游戏引擎
Tandy12356_11 小时前
Godot开发2D冒险游戏——第一节:主角登场!
python·游戏引擎·godot
是阿根17 小时前
unity使用iTextSharp生成PDF文件
unity·c#·游戏引擎
常城1 天前
Unity中通过TMP使用图片字体
unity·游戏引擎
惊鸿醉1 天前
⭐Unity 开发 | 如何通过 NTP 网络时间实现精准的跨平台时间同步【附完整源码 + UI 模块 + 偏差分析】
网络·unity·游戏引擎
虾球xz1 天前
游戏引擎学习第243天:异步纹理下载
c++·学习·游戏引擎
海鸥-w2 天前
Unity中使用Cinemachine插件创建自由视角相机(freelookCamera)来实现第三人称漫游
数码相机·unity·游戏引擎
EQ-雪梨蛋花汤2 天前
【Unity笔记】Unity音效管理:ScriptableObject配置 + 音量控制 + 编辑器预览播放自动化实现
笔记·unity·编辑器