转载

#你好Unity3D#Inspector视图使用脚本展开组件

Inspector视图中的所有组件,如果想展开必须用鼠标点击一下左上角的小箭头。昨天有朋友问我能不能通过脚本来动态展开或者关闭。

#你好Unity3D#Inspector视图使用脚本展开组件

可以用反射来做直接上代码~

using UnityEngine; using System.Collections; using UnityEditor; using System.Reflection; using System;   publicclassMyEditor:Editor   { [MenuItem("Test/Test")] staticvoidStart() { vartype=typeof(EditorWindow).Assembly.GetType("UnityEditor.InspectorWindow"); varwindow=EditorWindow.GetWindow(type); FieldInfo info=type.GetField("m_Tracker",BindingFlags.NonPublic|BindingFlags.Instance); ActiveEditorTracker tracker=info.GetValue(window)  asActiveEditorTracker;   for(inti=0;i<tracker.activeEditors.Length;i++) { //可以通过名子单独判断组件展开或不展开 if(tracker.activeEditors[i].target.GetType().Name!="NewBehaviourScript") { //这里1就是展开,0就是合起来 tracker.SetVisible(i,1); } } } } 

如下图所示,我的组件都展开了。 #你好Unity3D#Inspector视图使用脚本展开组件 OK!

正文到此结束
Loading...