2016-10-24 5 views

答えて

2

あなたが永続的なハッカーでない限りありませんそれは、不可能です。 GameViewは内部クラスであり、エディタスクリプトではアクセスできません。しかし、ねえ、いつも良いolの反射のためのオプションがあります。この質問は適切なトラックに設定されます: http://answers.unity3d.com/questions/179775/game-window-size-from-editor-window-in-editor-mode.html

+0

これは良いオプションのように見えます! しかし、彼らはそれが何をするメソッドの正確な名前を見つけたのですか? 私は必要な方法の名前を(そして存在する場合)どのように見つけることができますか?方法や何かのリストはありますか? – Dmitry

+0

ああ、私はそれに答えることはできません。私はgameViewを掘り下げたことはありません –

3

あなたはリフレクションで行うことができます。修正済みsimilar答え私はずっと前に作った。以下は、作業セット/統計情報の取得機能です。 Unity 5.4.0f1でテストされています。 Unityのバージョンを入れて、作業が止まったときに人々が苦情を言わないようにします。 Unityのアップデートでは、の名前をの名前に変更すると、いつでもこれを破ることができます。

  • GameView Editorでユニティ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(); 
関連する問題