2016-10-24 3 views

답변

2

아니 그것은 불가능합니다. GameView는 내부 클래스이므로 편집기 스크립팅에 액세스 할 수 없습니다. 그러나 이봐, 언제나 좋은 반성의 옵션이있다. 이 질문을 통해 올바른 방향으로 이동하게됩니다. http://answers.unity3d.com/questions/179775/game-window-size-from-editor-window-in-editor-mode.html

+0

이것은 좋은 옵션처럼 보인다! 그러나 어떻게 그들이하는 일을하는 방법의 정확한 이름을 알아 냈습니까? 필요한 방법의 이름을 찾을 수있는 방법은 무엇입니까? 방법 또는 뭔가 목록이 있습니까? – Dmitry

+0

오, 나는 대답 할 수 없다. 나는 gameView를 파고 들려고하지 않았다. –

3

리플렉션을 통해이를 수행 할 수 있습니다. 수정 된 similar 대답은 오래 전에 만들었습니다. 아래는 working set/get stats 함수입니다. 으로 테스트 됨 Unity 5.4.0f1. Unity 버전을 설치하여 사람들이 작동을 멈추었을 때 불평하지 않을 것입니다. Unity의 업데이트는 의 이름을으로 변경하면 언제든지이를 깨뜨릴 수 있습니다.

  • GameView

    는 편집기에서 유니티 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();