【问题标题】:Setup enum control in Unity custom inspector在 Unity 自定义检查器中设置枚举控件
【发布时间】:2016-12-07 21:50:58
【问题描述】:

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

对于任何想从屏幕截图或代码中了解上下文的人,我正在集成 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);
        }
    }

枚举控件根本没有响应,但按钮工作正常。

【问题讨论】:

    标签: c# unity3d enums


    【解决方案1】:

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

    就像常规的OnGUI() 函数OnInspectorGUI() 在一个帧中被调用多次。有效地将枚举重置为您赋予它的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      相关资源
      最近更新 更多