예제 #1
0
    //各シンボルのメニューを作成
    private void CreateSymbolMenuParts(DefineSymbol symbol, int symbolNo)
    {
        //有効になっているかどうかでスキンを変える
        EditorGUILayout.BeginVertical(symbol.IsEnabled ? GUI.skin.button : GUI.skin.textField);
        {
            //内容の変更チェック開始
            EditorGUI.BeginChangeCheck();

            string symbolKey = symbol.Key;
            bool   isEnabled = symbol.IsEnabled;

            EditorGUILayout.BeginHorizontal();
            {
                //内容の変更チェック開始
                EditorGUI.BeginChangeCheck();

                //チェックボックス作成
                isEnabled = EditorGUILayout.Toggle(isEnabled, GUILayout.Width(15));

                //シンボル名
                EditorGUILayout.LabelField("Symbol", GUILayout.Width(45));
                symbolKey = GUILayout.TextField(symbolKey);

                //最後の新規入力欄以外は削除ボタンを表示
                if (symbolNo < SymbolEditor.SymbolList.Count)
                {
                    if (GUILayout.Button("X", GUILayout.Width(20), GUILayout.Height(14)))
                    {
                        SymbolEditor.Delete(symbolNo);
                        return;
                    }
                }
            }
            EditorGUILayout.EndHorizontal();

            EditorGUI.indentLevel = 2;

            //シンボルに対応する値
            string symbolValue = symbol.Value;
            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.LabelField("Value", GUILayout.Width(64));
                symbolValue = GUILayout.TextField(symbolValue);
            }
            EditorGUILayout.EndHorizontal();

            //シンボルの説明
            string symbolInfo = symbol.Info;
            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.LabelField("Info", GUILayout.Width(64));
                symbolInfo = GUILayout.TextField(symbolInfo);
            }
            EditorGUILayout.EndHorizontal();

            //内容が変更されていれば、シンボルを編集
            if (EditorGUI.EndChangeCheck())
            {
                SymbolEditor.EditSymbol(symbolNo, symbolKey, symbolValue, symbolInfo, isEnabled);
            }
        }
        EditorGUILayout.EndVertical();

        EditorGUI.indentLevel = 0;
    }