您的位置:首页 > 其它

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

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

比如我们想要对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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: