Unity 给我们提供了很多方便开发的特性,本文将会介绍 一个比较常用的特性 :ContextMenu .
ContextMenu特性常用于编辑模式下场景数据的设置. 举个例子:
“Objects”组下有10个子物体,每个物体身上挂了一个"ObjectData"组件。
假设目前的需求是:1.在编辑模式下把每个物体“ObjectData”组件上的CubeID设置成跟物体名字索引相对应;
2.把每一个物体的 x 轴坐标都间隔为 1 排开。
一种方法就是手动去设置,但这太麻烦,如果是1000个物体就没完没了了。 这里就可以用ContextMenu 特性去实现。
创建一个SetData脚本组件,挂在到“Objects”物体上:
代码如下 :
之后右键点击“Objects”上的“SetData”脚本组件,就会发现菜单中多了一行“SetData”项目。 点击“SetData”即可完成设置.
最终效果:
在开发过程中,如果场景较大,点击运行往往需要等待好几秒,ContextMenu特效也可以让我们在编辑模式下(非运行)执行一些方法。
注:使用编辑器类Editor里面的MenuItem特性也可以达到创建实例、设置数据等目的,一个比较主要的区别是 :ContextMenu 作用的方法所在的类是可以继承自MonoBehaviour的,也就是说使用ContextMenu可以实现 如 :在编辑模式下让物体实现 transform.LookAt()、transform.Translate()等方法。
来源:CSDN
作者:贰小楼
链接:https://blog.csdn.net/yyq9111/article/details/53044449