编辑器扩展学习笔记(三)———菜单选项的可用性验证
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;
}
比如我们想要对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;
}
相关文章推荐
- Unity编辑器扩展学习笔记(一)——添加菜单选项
- Unity编辑器扩展学习笔记(二)——给创建的菜单选项添加快捷键
- 【unity学习笔记】在unity中扩展编辑器添加菜单
- [android](学习笔记7)为应用程序添加选项菜单
- 实现带子菜单的选项菜单(学习笔记)
- Unity3D 场景编辑器扩展学习笔记-Handles&Event
- Unity3D 场景编辑器扩展学习笔记-Handles
- MVC2 扩展Models和自定义验证(学习笔记)
- 每天一点点:android的选项菜单和其子菜单学习笔记
- Android之选项菜单子菜单学习笔记
- SharePoint【学习笔记】-- SecureStoreProvider扩展:验证Application中是否有当前用户的credentials
- Chrome扩展开发学习笔记之带选项页面的扩展
- Unity3D 场景编辑器扩展学习笔记-EditorWindow
- Unity3d编辑器扩展学习笔记
- Unity3D 场景编辑器扩展学习笔记-Editor
- VS 2008 学习笔记(4) --- 用户界面设计之菜单编辑器
- unity编辑器扩展学习笔记
- Lua学习笔记五--真正的入门:编写Lua扩展库
- Asp.Net Ajax 学习笔记9 JavaScript的原生类型以及Microsoft AJAX Library的相关扩展(上)
- Asp.Net Ajax 学习笔记16 Profile Service扩展方式