播放时如何在编辑器中打开/关闭统计面板?
我想在播放时通过C#脚本打开/关闭此面板。 这可能吗? 没有为此找到任何编辑器API函数。
你可以用reflection来做。 很久以前我修改过类似的答案。 下面是一个工作集/获取统计function。 使用Unity 5.4.0f1进行测试。 我把Unity版本放在人们不会抱怨它停止工作的时候。 Unity的更新可以随时重置,如果它们重命名任何变量。
-
GameView
=用于在编辑器中表示Unity GameView选项卡的类。 -
GetMainGameView
=返回当前GameView
实例的静态函数。 -
m_Stats
=一个布尔变量,用于确定是否应显示统计信息。
码:
//Show/Hide stats void showStats(bool enableStats) { Assembly asm = Assembly.GetAssembly(typeof(Editor)); Type type = asm.GetType("UnityEditor.GameView"); if (type != null) { MethodInfo gameViewFunction = type.GetMethod("GetMainGameView", BindingFlags.Static | BindingFlags.NonPublic); object gameViewInstance = gameViewFunction.Invoke(null, null); FieldInfo getFieldInfo = type.GetField("m_Stats", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public); getFieldInfo.SetValue(gameViewInstance, enableStats); } } //Returns true if stats is enabled bool statsIsEnabled() { Assembly asm = Assembly.GetAssembly(typeof(Editor)); Type type = asm.GetType("UnityEditor.GameView"); if (type != null) { MethodInfo gameViewFunction = type.GetMethod("GetMainGameView", BindingFlags.Static | BindingFlags.NonPublic); object gameViewInstance = gameViewFunction.Invoke(null, null); FieldInfo getFieldInfo = type.GetField("m_Stats", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public); return (bool)getFieldInfo.GetValue(gameViewInstance); } return false; }
用法 :
//Show stats showStats(true); //Hide stats showStats(false); //Read stats bool stats = statsIsEnabled();
不,这是不可能的,除非你是一个持久的黑客。 GameView是一个内部类,无法用于编辑器脚本。 但是,嘿,总有一个选择好的反思。 这个问题将使您走上正轨: http : //answers.unity3d.com/questions/179775/game-window-size-from-editor-window-in-editor-mode.html