示例#1
0
 private void DM_ContinueDialogue(sDialogueStruct sDialogueData)
 {
     if (CoroutineHandler != null)
     {
         StopCoroutine(CoroutineHandler);
     }
     exitCoroutine    = false;
     CoroutineHandler = StartCoroutine(ContinueDialogueAfterWait(sDialogueData, CheckContinueDialouge));
 }
示例#2
0
 private void CheckContinueDialouge(sDialogueStruct dialogueData, int currentLine)
 {
     IncreaseDialogueLine();
     if (CheckDialogueLength(dialogueData, currentLine))
     {
         continueDialogueEvent(dialogueData);
     }
     else
     {
         TryEndDialogue();
     }
 }
示例#3
0
 public void TryStartDialogue(sDialogueStruct sDialogueData)
 {
     if (sDialogueData.tTextToDisplay.Length > 0)
     {
         if (PlayerScriptEC.instance.playerState == ePlayerState.idle)
         {
             if (initiateDialogueEvent != null)
             {
                 initiateDialogueEvent(sDialogueData);
             }
             else
             {
                 Debug.LogError("couldnt start dialogue");
             }
         }
     }
 }
示例#4
0
    private IEnumerator ContinueDialogueAfterWait(sDialogueStruct sDialogueData, Action <sDialogueStruct, int> onComplete)
    {
        float counter = 0;

        while (true)
        {
            if (exitCoroutine)
            {
                onComplete(sDialogueData, currentLineOfDialogue);
                break;
            }

            if (counter >= sDialogueData.fDialogueWaitTime)
            {
                onComplete(sDialogueData, currentLineOfDialogue);
                break;
            }
            counter += Time.deltaTime;
            yield return(null);
        }
    }
示例#5
0
 private void DM_StartDialogue(sDialogueStruct sDialogueData)
 {
     currentLineOfDialogue = 0;
     UpdateCurrentDialogueData(sDialogueData);
     continueDialogueEvent(sDialogueData);
 }
示例#6
0
 private void UpdateCurrentDialogueData(sDialogueStruct dialogueData)
 {
     currentDialogueData = dialogueData;
 }
示例#7
0
 private static bool CheckDialogueLength(sDialogueStruct dialogueData, int currentLine)
 {
     // - 1 beacuse we feed currentline directly into our textmanager.
     // (which matches the int to the index in sDialogueData array of strings)
     return(dialogueData.tTextToDisplay.Length - 1 > currentLine);
 }
示例#8
0
 private void SetText(sDialogueStruct sDialogueData)
 {
     textToUse.color = new Color(sDialogueData.tTextColor.r, sDialogueData.tTextColor.g, sDialogueData.tTextColor.b);
     textToUse.text  = sDialogueData.tTextToDisplay[GetCurrentLine()];
 }
示例#9
0
 private void ContinueDialogue(sDialogueStruct sDialogueData)
 {
     animator.SetTrigger("ContinueDialogue");
     SetText(sDialogueData);
 }
示例#10
0
 private void ShowText(sDialogueStruct sDialogueData)
 {
     animator.SetTrigger("StartDialogue");
     textParent.SetActive(true);
 }
示例#11
0
 protected void InitiateDialogue(sDialogueStruct sDialogueData)
 {
     DialogueManager.instance.TryStartDialogue(sDialogueData);
 }
示例#12
0
 private void SetPlayerInDialogue(sDialogueStruct sDialogueData)
 {
     playerState = ePlayerState.inDialogue;
 }