public override void OnInspectorGUI() { DrawDefaultInspector(); DAS_Dialogue script = (DAS_Dialogue)target; script.inheritStyle = EditorGUILayout.Toggle("Inherit Style", script.inheritStyle); if (!script.inheritStyle) { script.title = EditorGUILayout.TextField("Title", script.title); script.photo = EditorGUILayout.ObjectField("Photo", script.photo, typeof(Sprite), true) as Sprite; } script.playSpecificSound = EditorGUILayout.Toggle("Play Specific Sound", script.playSpecificSound); if (script.playSpecificSound) { script.audioSource = EditorGUILayout.ObjectField("Audio Source", script.audioSource, typeof(AudioSource), true) as AudioSource; script.specificSound = EditorGUILayout.ObjectField("Specific Sound", script.specificSound, typeof(AudioClip), true) as AudioClip; } script.animatePhrases = EditorGUILayout.Toggle("Animate Phrases", script.animatePhrases); if (script.animatePhrases) { script.playTypingSound = EditorGUILayout.Toggle("Play Typing Sound", script.playTypingSound); } script.jumpToDialogue = EditorGUILayout.Toggle("Jump To Dialogue", script.jumpToDialogue); if (script.jumpToDialogue) { script.targetDialogue = EditorGUILayout.ObjectField("Target Dialgoue", script.targetDialogue, typeof(DAS_Dialogue), true) as DAS_Dialogue; } }
public void buildDialogueBox(DAS_DialogueBox dialogueBox, DAS_Dialogue dialogue, int phraseIndex = 0) { active = true; dialogueController.dialogueInCourse = true; disableOptions(dialogueBox); // If current dialogue has options, activate the bigger box if (dialogue.options.Length > 0) { dialogueBox.dialogueWithOptions.SetActive(true); dialogueBox.dialogueNoOptions.SetActive(false); // If single option, enable single option box if (dialogue.options.Length == 1) { dialogueBox.singleOptionBox.SetActive(true); dialogueBox.singleOptionText.text = dialogue.options[0].phrase; } // If two options, enable center option boxes else if (dialogue.options.Length == 2) { dialogueBox.option1CenterBox.SetActive(true); dialogueBox.option2CenterBox.SetActive(true); dialogueBox.option1CenterText.text = dialogue.options[0].phrase; dialogueBox.option2CenterText.text = dialogue.options[1].phrase; } // If more than two options, enable corresponding boxes else { dialogueBox.option1Box.SetActive(true); dialogueBox.option2Box.SetActive(true); dialogueBox.option3Box.SetActive(true); dialogueBox.option1Text.text = dialogue.options[0].phrase; dialogueBox.option2Text.text = dialogue.options[1].phrase; dialogueBox.option3Text.text = dialogue.options[2].phrase; if (dialogue.options.Length > 3) { dialogueBox.option4Box.SetActive(true); dialogueBox.option4Text.text = dialogue.options[3].phrase; } } } // If there is no option, active smaller box else { dialogueBox.dialogueWithOptions.SetActive(false); dialogueBox.dialogueNoOptions.SetActive(true); } // If current dialogue inherits style, use photo and title of this if (dialogue.inheritStyle) { assignPhotoAndTexts(dialogueBox, this.photo, this.title, dialogue.phrases[phraseIndex]); } else // If it doesnt inherit, use photo and title of current dialogue { assignPhotoAndTexts(dialogueBox, dialogue.photo, dialogue.title, dialogue.phrases[phraseIndex]); } }
// A dialogue can call a specific dialogue that is not in sequence public void callSpecificDialogue(DAS_Dialogue dialogue) { active = true; dialogueController.dialogueInCourse = true; int diagIndex = 0; // Search the index number for the provided dialogue for (int i = 0; i < dialogues.Length; i++) { if (dialogues[i] == dialogue) { diagIndex = i; } } currentPhraseIndex = 0; currentDialogueIndex = diagIndex; buildDialogueBox(dialogueBox, dialogues[currentDialogueIndex], currentPhraseIndex); dialogues[currentDialogueIndex].playSound(); dialogueBox.playDialogueBoxSound(); dialogueBox.showUpAnimation(); }