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

Dialogue System WIP

parent 8cfc3dea
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using BS;
public class DialogueScene : ScriptableObject
{
[SerializeField]
private List<Dialogue> dialogues;
private int dialogueIndex = 0;
public bool IsEnd { get { return dialogueIndex >= dialogues.Count; } }
public bool IsStart { get { return dialogueIndex == 0; } }
public Dialogue GetNextDialogue()
{
return dialogues[dialogueIndex++];
}
public Dialogue GetPrevDialogue()
{
return dialogues[dialogueIndex--];
}
}
[System.Serializable]
public struct Dialogue
{
public string characterName;
public string dialogue;
public int imageIndex;
}
\ No newline at end of file
fileFormatVersion: 2
guid: dae6c022c564874489089cfdac8364b2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public enum TypingType
{
LETTER, // One letter typing time == dialogueTypingSpeed
SENTENCE
}
public class DialogueSystem : MonoBehaviour
{
public float dialogueTypingSpeed = 0.1f;
public TypingType typingType = TypingType.LETTER;
public Text dialogueText;
public Text nameText;
public Button nextDialogueButton;
public Button prevDialogueButton;
public List<Image> characterImages = new List<Image>();
private DialogueScene dialogueScene;
public void LoadDialogueScene(DialogueScene dialogueScene)
{
this.dialogueScene = dialogueScene;
}
public void NextDialogue()
{
Dialogue dialogue = dialogueScene.GetNextDialogue();
nameText.text = dialogue.characterName;
StartCoroutine(TypingDialogue(dialogue.dialogue));
}
public void PrevDialogue()
{
Dialogue dialogue = dialogueScene.GetPrevDialogue();
nameText.text = dialogue.characterName;
StartCoroutine(TypingDialogue(dialogue.dialogue));
}
public IEnumerator TypingDialogue(string dialogue)
{
float typingTime = dialogueTypingSpeed;
if (typingType == TypingType.SENTENCE)
{
typingTime /= dialogue.Length;
}
for (int i = 0; i < dialogue.Length; i++)
{
dialogueText.text += dialogue[i];
yield return new WaitForSeconds(dialogueTypingSpeed);
}
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 984475bd0b628284684fe89439e89898
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
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