Commit fa2de7bc authored by 15박보승's avatar 15박보승 Committed by 18류지석

Add utility features to Dialogue Scene Maker

parent 6e883fc2
......@@ -34,6 +34,13 @@ public struct Dialogue
this.dialogue = dialogue;
}
public Dialogue(Dialogue dialogue)
{
this.characterName = dialogue.characterName;
this.imageIndex = dialogue.imageIndex;
this.dialogue = dialogue.dialogue;
}
public string characterName;
[TextArea]
public string dialogue;
......
......@@ -12,11 +12,15 @@ public class DialogueSceneMakerWindow : EditorWindow
private string dialogueText;
private int imageIndex;
Vector2 scroll;
Vector2 dialogueScroll;
private int loadFromDialoguesIndex = 0;
Rect dialogueAdderWindowRect = new Rect(0, 0, 400, 400);
Rect dialogueSceneMakerWindowRect = new Rect(400, 0, 400, 400);
Rect dialogueSceneMakerWindowRect = new Rect(400, 0, 400, 600);
DialogueScene dialogueScene = null;
string newFileName;
[MenuItem ("Tools/DialogueSceneMaker")]
static void Init()
......@@ -28,21 +32,23 @@ public class DialogueSceneMakerWindow : EditorWindow
private void OnGUI()
{
/*
EditorGUILayout.BeginHorizontal();
BeginWindows();
dialogueAdderWindowRect = GUILayout.Window(1, dialogueAdderWindowRect, DialogueAdderWindow, "Dialogue Adder");
dialogueSceneMakerWindowRect = GUILayout.Window(2, dialogueSceneMakerWindowRect, DialogueSceneWindow, "Dialogue Scene Maker");
EndWindows();
}
EditorGUILayout.BeginVertical();
GUILayout.Label("Dialogue Scene Maker", EditorStyles.boldLabel);
EditorGUILayout.Space();
void DialogueAdderWindow(int id)
{
characterName = EditorGUILayout.TextField("Character Name", characterName, GUILayout.MaxWidth(position.width / 2));
imageIndex = EditorGUILayout.IntField("Character Image Index", imageIndex, GUILayout.MaxWidth(position.width / 2));
GUILayout.Label("Dialogue");
dialogueText = EditorGUILayout.TextArea(dialogueText,GUILayout.Height(200), GUILayout.MaxWidth(position.width / 2));
dialogueText = EditorGUILayout.TextArea(dialogueText, GUILayout.Height(200), GUILayout.MaxWidth(position.width / 2));
if (GUILayout.Button("Add new Dialogue", GUILayout.MaxWidth(position.width / 2)))
{
dialogues.Add(new Dialogue(characterName,imageIndex, dialogueText));
dialogues.Add(new Dialogue(characterName, imageIndex, dialogueText));
characterName = "";
imageIndex = 0;
dialogueText = "";
......@@ -50,49 +56,25 @@ public class DialogueSceneMakerWindow : EditorWindow
EditorGUILayout.BeginHorizontal();
loadFromDialoguesIndex = EditorGUILayout.IntField(loadFromDialoguesIndex, GUILayout.MaxWidth(position.width / 4));
if (GUILayout.Button("Load from current Dialogues", GUILayout.MaxWidth(position.width / 4)))
if (GUILayout.Button("Add new Dialogue at", GUILayout.MaxWidth(position.width / 4)))
{
Dialogue dialogue = dialogues[loadFromDialoguesIndex];
characterName = dialogue.characterName;
imageIndex = dialogue.imageIndex;
dialogueText = dialogue.dialogue;
dialogues.Add(new Dialogue(characterName, imageIndex, dialogueText));
characterName = "";
imageIndex = 0;
dialogueText = "";
}
EditorGUILayout.EndHorizontal();
EditorGUILayout.EndVertical();
EditorGUILayout.BeginVertical();
scroll = GUILayout.BeginScrollView(scroll);
var serializedObject = new SerializedObject(this);
var list = serializedObject.FindProperty("dialogues");
EditorGUILayout.PropertyField(serializedObject.FindProperty("dialogues"), true, GUILayout.MaxWidth(position.width / 2));
GUILayout.EndScrollView();
EditorGUILayout.EndVertical();
EditorGUILayout.EndHorizontal();
*/
BeginWindows();
dialogueAdderWindowRect = GUILayout.Window(1, dialogueAdderWindowRect, DialogueAdderWindow, "Dialogue Adder");
dialogueSceneMakerWindowRect = GUILayout.Window(2, dialogueSceneMakerWindowRect, DialogueSceneWindow, "Dialogue Scene Maker");
EndWindows();
}
void DialogueAdderWindow(int id)
{
characterName = EditorGUILayout.TextField("Character Name", characterName, GUILayout.MaxWidth(position.width / 2));
imageIndex = EditorGUILayout.IntField("Character Image Index", imageIndex, GUILayout.MaxWidth(position.width / 2));
GUILayout.Label("Dialogue");
dialogueText = EditorGUILayout.TextArea(dialogueText, GUILayout.Height(200), GUILayout.MaxWidth(position.width / 2));
if (GUILayout.Button("Add new Dialogue", GUILayout.MaxWidth(position.width / 2)))
EditorGUILayout.BeginHorizontal();
loadFromDialoguesIndex = EditorGUILayout.IntField(loadFromDialoguesIndex, GUILayout.MaxWidth(position.width / 4));
if (GUILayout.Button("Edit Dialogue at", GUILayout.MaxWidth(position.width / 4)))
{
dialogues.Add(new Dialogue(characterName, imageIndex, dialogueText));
characterName = "";
imageIndex = 0;
dialogueText = "";
}
EditorGUILayout.EndHorizontal();
EditorGUILayout.BeginHorizontal();
loadFromDialoguesIndex = EditorGUILayout.IntField(loadFromDialoguesIndex, GUILayout.MaxWidth(position.width / 4));
......@@ -112,13 +94,78 @@ public class DialogueSceneMakerWindow : EditorWindow
{
GUILayout.Label("Current dialogue list", EditorStyles.boldLabel);
scroll = GUILayout.BeginScrollView(scroll);
/*
GUILayout.BeginHorizontal();
dialogueScene = EditorGUILayout.ObjectField(dialogueScene, typeof(DialogueScene), false) as DialogueScene;
if (GUILayout.Button("Save", GUILayout.Width(100)))
{
}
if (GUILayout.Button("Load", GUILayout.Width(100)))
{
}
GUILayout.EndHorizontal();
/*
GUILayout.BeginHorizontal();
if (GUILayout.Button("Save", GUILayout.Width(100)))
{
}
if (GUILayout.Button("Load", GUILayout.Width(100)))
{
}
GUILayout.EndHorizontal();
*/
dialogueScroll = GUILayout.BeginScrollView(dialogueScroll);
var serializedObject = new SerializedObject(this);
var list = serializedObject.FindProperty("dialogues");
for (int i = 0; i < dialogues.Count; i++)
{
EditorGUILayout.PropertyField(list.GetArrayElementAtIndex(i));
if (EditorGUILayout.PropertyField(list.GetArrayElementAtIndex(i),new GUIContent("Dialogue " + i.ToString()), true))
{
Debug.Log("ASDF");
var element = list.GetArrayElementAtIndex(i);
Dialogue dialogue = new Dialogue(
element.FindPropertyRelative("characterName").stringValue,
element.FindPropertyRelative("imageIndex").intValue,
element.FindPropertyRelative("dialogue").stringValue);
dialogues[i] = dialogue;
}
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
if (i > 0 && GUILayout.Button("↑", GUILayout.Width(20)))
{
Dialogue tmp = dialogues[i];
dialogues[i] = dialogues[i - 1];
dialogues[i - 1] = tmp;
break;
}
if (i < dialogues.Count - 1 && GUILayout.Button("↓", GUILayout.Width(20)))
{
Dialogue tmp = dialogues[i];
dialogues[i] = dialogues[i + 1];
dialogues[i + 1] = tmp;
break;
}
if (GUILayout.Button("+", GUILayout.Width(20)))
{
Dialogue tmp = new Dialogue(dialogues[i]);
dialogues.Insert(i + 1, tmp);
break;
}
if (GUILayout.Button("-", GUILayout.Width(20)))
{
dialogues.RemoveAt(i);
break;
}
GUILayout.EndHorizontal();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment