编辑器扩展学习笔记(三)———菜单选项的可用性验证

来源:互联网 发布:小米关闭免费网络短信 编辑:程序博客网 时间:2024/05/17 07:47

如果新建了一个菜单选项,是为了对一个物体的某个组件进行操作,然而实际上我们并没有选中某个物体,或者所选中的物体并不具备我们想要操作的组件;这种时候,如果菜单显示可用显然是不合适的

比如我们想要对mesh render组件进行操作,如果我们选中了一个空物体,然后点开我们的菜单,那么这时候菜单项应该显示不可用才合理

要实现这种效果,需要写两个方法,第一个方法与前面的无异,第二个方法的返回值是bool型,它的返回值决定了菜单选中是否可用。第二个方法的menuitem路径与第一个相同,是否验证的参数要填入true

[MenuItem("DevQ/Remove Shadow")]    static void RemoveShadowFun() {        MeshRenderer mr = Selection.activeTransform.GetComponent<MeshRenderer>();        mr.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;        mr.receiveShadows = false;    }    [MenuItem("DevQ/Remove Shadow",true)]    static bool ValidateRemoveShadowFun() {        return Selection.activeTransform.GetComponent<MeshRenderer>() != null;    }


阅读全文
0 0
原创粉丝点击