播放时如何在编辑器中打开/关闭统计面板?

我想在播放时通过C#脚本打开/关闭此面板。 这可能吗? 没有为此找到任何编辑器API函数。

Unity3D中的统计面板

你可以用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