2016-12-07 10 views
0

ユニティカスタムインスペクタで列挙コントロールを設定したいと思います。しかし、何らかの理由で私の列挙型コントロールは選択肢の価値を変えていません。ここに私のコードです。ユニティカスタムインスペクタでのenumコントロールの設定

スクリーンショットやコードからコンテキストを理解したい方は、Facebook sdkを統合しており、カスタムエディタを使用して権限を追加する必要があります。

public override void OnInspectorGUI() 
    { 
     DrawDefaultInspector(); 

     ShowCurrentPermissions(); 

     FacebookPermissions permission = FacebookPermissions.none; 
     permission = (FacebookPermissions)EditorGUILayout.EnumPopup("Permission", permission); 

     if (GUILayout.Button("Add Permission")) 
     { 
      Debug.Log("Add pressed"); 
      permission = (FacebookPermissions)EditorGUILayout.EnumPopup("Permission", permission); 
      AddPermission(permission); 
     } 

     if (GUILayout.Button("Remove Permission")) 
     { 
      permission = (FacebookPermissions)EditorGUILayout.EnumPopup("Permission", permission); 
      RemovePermission(permission); 
     } 
    } 

列挙型コントロールはまったく応答していませんが、ボタンは正常に動作しています。

enter image description here

答えて

2

あなたはAwake()またはStart()機能にFacebookPermissions permission = FacebookPermissions.none;文を移動する必要があります。または、少なくともあなたの範囲外に移動するOnInspectorGUI()

通常のOnGUI()の機能のように、OnInspectorGUI()はフレームの何度か呼び出されます。列挙型を効果的に元の値に戻します。

関連する問題