Unity3D中Hierarche窗口组件和Inspector窗口组件快速展开折叠
发表于2018-06-21
开发过程中使用一些快捷操作可以让你减少一些重复操作,下面和大家介绍下的是Hierarche窗口组件和Inspector窗口组件快速展开折叠的快捷操作方法。
1、Hierarche 窗口组件快速展开和折叠
全选你要折叠的物体,按着Shift键点击开头第一个,然后选择最后一个这样就全部选择要操作的组件。
然后按着 Alt键+小键盘旁边的方向键 Alt键+→快速展开 Alt键+ ←快速折叠
2、inspector窗口组件快速展开折叠
如果遇见一个物体上挂载多个脚本你想要快速展开和折叠 这样就需要借助编辑器扩展Edito完成
新建脚本 InspectorManagerEditor
下面贴出代码:
using UnityEditor; using System.Reflection; /// <summary> /// 描述:全部 展开/收起 Inspector面板的所有组件、 /// author: /// todo 还可以深度定制,添加两个按钮切换 /// </summary> //[CustomEditor(typeof(Transform))] public class InspectorManagerEditor : Editor { #region ===字段=== #endregion #region ===Unity事件=== 快捷键: Ctrl + Shift + M /Ctrl + Shift + Q 实现 // 显示两个可以点击的Button [MenuItem("DajiaGame/InspectorManager/全部展开组件... %#&m")] static void Expansion() { var type = typeof(EditorWindow).Assembly.GetType("UnityEditor.InspectorWindow"); var window = EditorWindow.GetWindow(type); FieldInfo info = type.GetField("m_Tracker", BindingFlags.NonPublic | BindingFlags.Instance); ActiveEditorTracker tracker = info.GetValue(window) as ActiveEditorTracker; for (int i = 0; i < tracker.activeEditors.Length; i++) { ////可以通过名子单独判断组件展开或不展开 //if (tracker.activeEditors[i].target.GetType().Name != "NewBehaviourScript") //{ //这里1就是展开,0就是合起来 tracker.SetVisible(i, 1); //} } } [MenuItem("DajiaGame/InspectorManager/全部收起组件... %#&n")] static void Shrinkage() { var type = typeof(EditorWindow).Assembly.GetType("UnityEditor.InspectorWindow"); var window = EditorWindow.GetWindow(type); FieldInfo info = type.GetField("m_Tracker", BindingFlags.NonPublic | BindingFlags.Instance); ActiveEditorTracker tracker = info.GetValue(window) as ActiveEditorTracker; for (int i = 0; i < tracker.activeEditors.Length; i++) { //这里1就是展开,0就是合起来 tracker.SetVisible(i, 0); } } #endregion #region ===方法=== #endregion }
新建文件夹Editor把这个脚本放在这个文件夹下
然后通过快捷键或者 选择这里就可以将 inspector窗口一个物体的组件快速展开和关闭