在Unity自定义检查器中设置枚举控件

时间:2016-12-07 12:40:46

标签: c# unity3d enums

我想在统一自定义检查器中设置枚举控件。但由于某些原因,我的枚举控制并没有改变它在选择上的价值。这是我的代码。

对于想要从截图或代码中了解上下文的任何人,我正在整合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

1 个答案:

答案 0 :(得分:2)

您应该将FacebookPermissions permission = FacebookPermissions.none;语句移至Awake()Start()函数。或者至少将其移到OnInspectorGUI()

的范围之外

就像常规OnGUI()函数OnInspectorGUI()一样被调用几次。有效地将枚举重置为您给它的值。