2016-12-07 68 views
0

我想在統一自定義檢查器中設置枚舉控制。但由於某種原因,我的枚舉控制不會改變其選擇的價值。這是我的代碼。在Unity自定義檢查器中設置枚舉控制

對於任何想從屏幕截圖或代碼中瞭解上下文的人,我正在整合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); 
     } 
    } 

enum控件根本沒有響應,但按鈕工作正常。

enter image description here

回答

2

你應該移動FacebookPermissions permission = FacebookPermissions.none;語句來Awake()Start()功能。或者至少將其移動到您的範圍之外OnInspectorGUI()

就像正常的OnGUI()功能OnInspectorGUI()被稱爲幾次幀。有效地將枚舉重置爲您給予的值。