Example #1
0
    public static void ShowActions(SerializedProperty actionsArray, SerializedProperty logArray, SerializedProperty archiveArray, StateController controller, EditorArrayOption options = EditorArrayOption.Default)
    {
        bool
            showArrayLabel = (options & EditorArrayOption.ArrayLabel) != 0,
            showArraySize  = (options & EditorArrayOption.ArraySize) != 0;


        if (showArrayLabel)
        {
            EditorGUILayout.PropertyField(actionsArray);
            EditorGUI.indentLevel += 1;
        }
        if (!showArrayLabel || actionsArray.isExpanded)
        {
            if (showArraySize)
            {
                //EditorGUILayout.PropertyField(actionsArray.FindPropertyRelative("Array.size"));
                EditorGUILayout.PropertyField(actionsArray.FindPropertyRelative("Array.size"));
            }
            ShowElements(actionsArray, logArray, archiveArray, options, controller);
        }
        if (showArrayLabel)
        {
            EditorGUI.indentLevel -= 1;
        }
    }
Example #2
0
    private static void ShowElements(SerializedProperty actionsArray, SerializedProperty logArray, SerializedProperty archiveArray, EditorArrayOption options, StateController controller)
    {
        bool showElementLabels = (options & EditorArrayOption.ElementLabels) != 0,
             showButtons       = (options & EditorArrayOption.Buttons) != 0;

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Action", EditorStyles.boldLabel);
        EditorGUILayout.LabelField("Arch", EditorStyles.boldLabel, GUILayout.Width(35));
        EditorGUILayout.LabelField("Log", EditorStyles.boldLabel, GUILayout.Width(30));
        EditorGUILayout.LabelField("", EditorStyles.boldLabel, GUILayout.Width(30));

        EditorGUILayout.EndHorizontal();
        for (int i = 0; i < actionsArray.arraySize; i++)
        {
            if (showButtons)
            {
                EditorGUILayout.BeginHorizontal();
            }
            if (showElementLabels)
            {
                EditorGUILayout.PropertyField(actionsArray.GetArrayElementAtIndex(i), GUIContent.none);
                EditorGUILayout.PropertyField(archiveArray.GetArrayElementAtIndex(i), GUIContent.none, GUILayout.Width(20));
                EditorGUILayout.PropertyField(logArray.GetArrayElementAtIndex(i), GUIContent.none, GUILayout.Width(20));
            }
            else
            {
                EditorGUILayout.PropertyField(actionsArray.GetArrayElementAtIndex(i), GUIContent.none);
                EditorGUILayout.PropertyField(archiveArray.GetArrayElementAtIndex(i), GUIContent.none, GUILayout.Width(20));
                EditorGUILayout.PropertyField(logArray.GetArrayElementAtIndex(i), GUIContent.none, GUILayout.Width(20));
            }
            if (showButtons)
            {
                ShowButtons(actionsArray, i, controller);
                EditorGUILayout.EndHorizontal();
            }
        }
    }