在 Unity 中存在大量的组件,而脚本也属于组件,现在的需求是这样的:将脚本组件中的属性值通过编辑器菜单的形式进行更新。
首先给出脚本组件,简单写个 Player.cs:
要使用编辑器菜单的话依旧需要 MenuItem,但是如何在组件上添加菜单呢?从之前了解到的菜单添加方式来看,其实也是跟 MenuItem 传入的参数有关。
如上在 MenuItem 的路径里使用到了 CONTEXT,这就代表着要对组件进行菜单按钮的添加,不过光有 CONTEXT 还不行,我们还需要确定组件类型,所以 CONTEXT 后面跟上了我们需要操作的组件类型 Player,而 test 就是我们最终显示的按钮了,显示效果如下。
同理我们就能知道其它的组件该如何添加按钮了:
好了,现在能够在组件上自定义菜单按钮了,那么该如何获取更新组件呢?这里就涉及到我们的 MenuCommand ,直接看代码:
如上代码可知,在普通添加菜单按钮的方法中设置了传入参数,之前了解的基本都是空参方法。这里虽然设置了参数,但是方法是由系统调用的,所以我们不需要关心,我们只需要关心 MenuCommand 对象,因为系统传过来的这个对象数据是可以转换成组件对象的。不过这里注意的点在于涉及到的脚本组件的唯一性或者说确定性,如果项目中存在多个相同的脚本组件,则需要通过命名空间的方式去访问组件对象了。
经过上述的代码处理,我们就实现了脚本组件 Player 的属性更新操作,当然不止脚本组件,Unity 的其它内置组件大体都可以的。
领取专属 10元无门槛券
私享最新 技术干货