我想在统一自定义检查器中设置枚举控件。但由于某些原因,我的枚举控制并没有改变它在选择上的价值。这是我的代码。
对于想要从截图或代码中了解上下文的任何人,我正在整合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);
}
}
枚举控件根本没有响应,但按钮工作正常。
答案 0 :(得分:2)
您应该将FacebookPermissions permission = FacebookPermissions.none;
语句移至Awake()
或Start()
函数。或者至少将其移到OnInspectorGUI()
就像常规OnGUI()
函数OnInspectorGUI()
一样被调用几次。有效地将枚举重置为您给它的值。