UNITY3D中 快捷键控制Hierarchy面板中gameObject的激活状态
2014-07-10 16:09
633 查看
把以下脚本放在unity工程文件夹内的Editor 文件夹下 ,选中多个物体 按下 “command 加shift 加 d ”即可改变选中物体的激活状态
// MyEditorTool.cs using UnityEngine; using UnityEditor; using System; public class MyEditorTool : ScriptableObject { // 设置菜单Tool 下的 MyTool 下的 Enable\Disable Multi GameObj 快捷键为 command 加shift 加 d <MAC上的> public const string MENU_DISABLE_SELECTED_GAMEOBJ = "Tool/MyTool/Enable\\Disable Multi GameObj %#d"; //%#d 即代表 command 加shift 加 d快捷键 [MenuItem(MENU_DISABLE_SELECTED_GAMEOBJ,true)] static bool ValidateSelectEnableODisable () { GameObject[] gobj = GetSelectedGameObject () as GameObject[]; if (gobj == null) { return false; } if (gobj.Length == 0) { return false; } return true; } [MenuItem(MENU_DISABLE_SELECTED_GAMEOBJ)] static void SelectEnableODisable () { GameObject[] gobj = GetSelectedGameObject () as GameObject[]; bool enable = !gobj [0].active; foreach (GameObject go in gobj) { EnableODisableChildNote (go.transform, enable); } } //激活或者关闭选中的物体及其子物体 public static void EnableODisableChildNote (Transform parent, bool enable) { parent.gameObject.active = enable; for (int i = 0; i < parent.childCount; i++) { Transform child = parent.GetChild (i); if (child.childCount != 0) { EnableODisableChildNote (child, enable); } else { child.gameObject.active = enable; } } } // 返回选中的物体 static GameObject[] GetSelectedGameObject () { return Selection.gameObjects; } }转载自博客 http://blog.sina.com.cn/s/blog_6b3661a901013dh7.html
相关文章推荐
- Unity3D控制gameobject脚本执行的顺序
- Unity3d_基础之GameObject.activeSelf,.activeInHierarchy,.SetActive的区别和关联
- Unity3D 获得GameObjectHierarchy 中的全路径
- GameObject非激活状态,触发测试
- Unity编辑器--快捷键设置gameObject激活隐藏
- CEdit控件对输入参数的控制,包括右键面板及快捷键的处理
- Unity3D动画面板编辑器状态属性对照表
- Unity3D 射线指定层获取GameObject 注意 LayerMask
- UNITY gameobject代码中setacvtive(false)与面板中直接去掉勾 效果不一样
- ime-焦点不在输入框,则切换为默认的英文输入法状态,激活游戏中快捷键
- Unity3D中动画和GameObject的变化关系
- Unity GameObject.activeSelf, GameObject.activeInHierarchy,GameObject.SetActive和SetActiveRecursively
- 【Unity3D自学记录】Unity3D游戏开发之自由视角状态下的角色控制(一)
- Unity3d GameObject 调用其它GameObject中的方法
- Unity3D 在一个GameObject旁边创建一个GameObject
- unity3d 调用另一个GameObject中的script
- Unity3d中GameObject.active或gameObject.SetActiveRecursively无效的问题
- Unity3D获得两GameObject间距
- 【Unity3D基础概念】给初学者看的Unity概览(一):GameObject,Compoent,Time,Input,Physics
- 【Unity3D基础教程】(一):GameObject,Compoent,Time,Input,P...