工程场景中的标记,分2DUI和3D物体的使用,另外还可以创建配置文件进行设定和加载。
Icon2D和Icon3D:
Icon2D设置:
绑定物体:UI2D标记需要绑定的场景中的一个物体(获取空节点)。
属标记层:标记所属的层管理器,往下面看可知。
界面画布:UICanvas。
场景相机:MainCamera。
界面相机:UICamera。
标记偏移:UI2D标记较绑定的场景物体的位置偏移量。
保留字段:UI2D标记绑定的场景物体的附加信息。
自动更新:摄像机视口变化后标记是否自动跟随绑定的场景物体位置,默认启用。
交互日志:事件触发的交互日志打印。
设置同上,值得注意的是Icon3D的使用要在场景的摄像机上面添加一个射线检测组件。
标记的交互事件:
事件依次是:指针移入、移出、单击、双击、按下、释放、长按_按下、长按_释放。
长按的时间是3s秒触发。
代码部分:
Icon2D和Icon3D的UpdateName、SetActive:
Icon2D的名称是标记的字节的的Text组件,而Icon3D的名称是TextMesh组件。
IconInfo:
这个就是2D或是3D保留字段的信息组件,这个不用手动挂载到任何场景物体上,而是主要标记2/3D的保留字段有字符串信息就会自动在场景的物体(3D)上自动挂载这个组件并将标记的保留字段信息复制到这边来。这个组件的使用主要是给Icon2D标记组件使用的,因为Icon2D是需要绑定一个场景物体(3D)的,是分离的,而Icon3D就是一个场景的物体是一体的,使用Icon3D组件除了受标记层的管理控制之外最主要的是可以用到丰富的事件注册。
IconLayer2D和IconLayer3D
标记管理层。
IconLayer2D对象是一个UIPanel。
IconLayer3D对象是一个空对象。
2D标记层设置(3D标记层设置参照):
标记预置:2D标记预置件。
使用路径:是使用路径字符串查找场景标记位置的根节点还是直接使用根节点指定?
如果使用路径查找,代码通过Find进行全局查找 。
如果使用指定,那就指定标记位置的根节点对象。
标记偏移:传值给创建出的2D标记。
标记缩放:传值给创建出的2D标记Scale。
场景相机:传值给创建出的2D标记。
界面相机:传值给创建出的2D标记。
自动创建:是否运行起Start自动创建该层的标记对象们。
自动隐藏:是否运行起Start自动隐藏该标记层。
事件监听回调:
在该标测层创建完标记后的回调信息,标记层名称和该层的标记们。
代码重点部分:
LoadIconConfigFile
通过标记配置文件创建场景标记。
要用配置文件了,我们先看看配置文件的创建和使用吧:
打开标记配置窗口。
窗口的配置的按钮使用:
创建层根节点:给场景中创建标记层的根节点来开始配置标记层。
这是个空节点,对象名称不要手动更改。
+标记层:创建新的标记层,名称可通过Hierarchy或窗口进行更改,位置不关心。
-标记层:移除当前标记层。
+标记:给当前标记层创建新的标记,名称可通过Hierarchy或窗口进行更改,位置进行调整,因为这直接关系到标记创建诞生的位置。
-:删除当前标记位置节点对象。
存储信息配置:将调整好的场景标记树结构信息存储到配置文件中。
配置文件的名称定义,JSON拓展名.json可写可不写。
存储位置:
另外文件存储方式是覆盖方式,如果之前的配置文件里面的信息有用需要注意了。
看看配置信息吧:
信息很明了吧,标记层名称和标记数组,标记也是名称位置和保留的附加信息。
后期可直接通过配置文件修改进行更新场景标记。
加载场景Tree:将场景中的标记层位置节点树结构搜索加载到窗口中,目的是为了更新配置文件信息。
搜索配置文件:当场景中没有标记层根节点时可从工程资产中搜索标记的配置文件 ,目的是为了更新配置文件信息。
点击后会从存储目录中搜索所有的JSON配置文件。
选择启用一个点击加载,进行调整和更新文件信息。
好了,到此标记的配置文件的创建和更新的问题解决了,回头再来看看如何使用的吧。
加载标记配置文件设置信息:
配置文件:当前场景要加载哪个标记的配置文件?
位置都在存储位置。
标记类型:加载的配置文件生成的标记都是2D还是3D类型。
层根节点:根据标记类型而有所区别。
T2D的话,层根节点肯定就是UICanvas对象了。
T3D的话,就在场景Hierarchy下创建一个空节点指定就可以了。
场景相机:T2D类型下指定。
界面相机:T2D类型下指定。
自动创建:是否在运行起Start自动根据配置文件在场景中创建标记层和标记。
所以要在其他脚本做其他设置的话就要在Awake中了。
事件监听回调:
根据配置文件创建标记过程中,每创建好一个标测层后的回调信息,标记层名称和该层的标记们。
需要注意的是,每个标记层都要指定的标记预置件,都在Resources的分级目录下,并且预置件的名称要和对应的配置文件的标记层名称保持一致。
至于层标记的预置件身上可添加标记组件也可不添加组件。
代码重点部分:
使用效果: