コード例 #1
0
    void ScriptGUI()
    {
        using (new GUILayout.VerticalScope(GUILayout.Width(messageWinWidth)))
        {
            scriptScrollPos = EditorGUILayout.BeginScrollView(
                scriptScrollPos, GUI.skin.box);
            WriteScript();
            EditorGUILayout.EndScrollView();

            SwitchFocusedToggle();
            if (onDetectScroll && scriptScrollPos.y != maxY)
            {
                maxScrollY     = scriptScrollPos.y;
                onDetectScroll = false;
                JumpLine(scriptToggles.IndexOf(true) - 1);
                Debug.Log("Detect");
            }

            using (new GUILayout.HorizontalScope())
            {
                if (GUILayout.Button("空行追加"))
                {
                    InsertLine(" ");
                }
                if (GUILayout.Button("↓コピー"))
                {
                    int index = scriptToggles.FindIndex(x => x);
                    if (index >= 0)
                    {
                        inputMessage = scriptLines[index];
                    }
                }

                /*if (GUILayout.Button("全選択 解除", EditorStyles.miniButtonMid))
                 * {
                 *  scriptToggles = scriptToggles.Select(x => x = false).ToList();
                 * }*/
                if (GUILayout.Button("行削除"))
                {
                    RemoveSelectedLine();
                }
            }

            if (scriptUndo == null)
            {
                scriptUndo = new ScriptUndo(scriptLines);
            }
            using (new GUILayout.HorizontalScope())
            {
                if (GUILayout.Button("一つ戻す"))
                {
                    scriptUndo.Undo();
                }
                if (GUILayout.Button("やり直す"))
                {
                    scriptUndo.Redo();
                }
            }
        }
    }
コード例 #2
0
    void LoadScript()
    {
        string path = SCRIPT_FOLDER_PATH + string.Format("{0}.txt", scriptName);

        script = AssetDatabase.LoadAssetAtPath <TextAsset>(path);
        if (!File.Exists(path))
        {
            script = null;
            return;
        }

        scriptLines = new List <string>();
        scriptLines.AddRange(Regex.Split(script.text, "\r\n|\r|\n"));
        scriptLines.Add("");
        int lineCount = scriptLines.Count;

        scriptToggles = new List <bool>();
        //scriptToggles.Add(true);
        for (int i = 0; i < lineCount; i++)
        {
            scriptToggles.Add(false);
        }

        scriptUndo        = new ScriptUndo(scriptLines);
        onDetectScroll    = true;
        scriptScrollPos.y = maxY;
        Debug.Log(scriptToggles.Count);
    }