示例#1
0
    IEnumerator StartDialogue(DialogueParameters parameters)
    {
        int counter = 0;

        if (!parameters.moreConfirmationBoxes)
        {
            parameters.canvasTransform.GetChild(7).GetComponent <Button>().gameObject.SetActive(false);
            parameters.canvasTransform.GetChild(8).GetComponent <Button>().gameObject.SetActive(false);
        }

        foreach (string text in parameters.dialogue)
        {
            if (counter > 0)
            {
                yield return(StartCoroutine(dialogueManager.WaitForMouseClick()));

                yield return(StartCoroutine(dialogueManager.WaitForMouseClick()));       //I don't know why this second WaitForMouseClick is necessary, but if it's
                                                                                         //not here, the dialogue tries to play two lines at the same time.
            }

            StartCoroutine(TextScroll(text, parameters.canvasTransform));

            counter++;
        }

        if (parameters.moreConfirmationBoxes)
        {
            parameters.canvasTransform.GetChild(7).GetComponent <Button>().gameObject.SetActive(true);
            parameters.canvasTransform.GetChild(8).GetComponent <Button>().gameObject.SetActive(true);
        }
        else
        {
            isTalking = false;
        }
    }
示例#2
0
    public void InspectNPC(RaycastHit2D hit, List <string> dialogue)
    {
        npcSprite = hit.collider.gameObject.GetComponent <SpriteRenderer>();
        //npcStats = hit.collider.gameObject.GetComponent<NPCStatsManager>();
        Transform canvasTransform = this.gameObject.transform.GetChild(0);

        canvasTransform.GetChild(1).GetComponent <Image>().sprite = playerSprite.sprite;
        canvasTransform.GetChild(2).GetComponent <Image>().sprite = npcSprite.sprite;

        canvasTransform.GetChild(4).GetComponent <Text>().text = hit.collider.name;
        canvasTransform.GetChild(5).GetComponent <Text>().text = player.playerName;

        DialogueParameters defaultParameters = new DialogueParameters(dialogue, canvasTransform, false);

        StartCoroutine(StartDialogue(defaultParameters));
    }
示例#3
0
    public void InspectNPC(RaycastHit2D hit, List <string> dialogue, List <string> dialogueYes, List <string> dialogueNo)
    {
        npcSprite = hit.collider.gameObject.GetComponent <SpriteRenderer>();
        //npcStats = hit.collider.gameObject.GetComponent<NPCStatsManager>();
        Transform canvasTransform = this.gameObject.transform.GetChild(0);

        canvasTransform.GetChild(1).GetComponent <Image>().sprite = playerSprite.sprite;
        canvasTransform.GetChild(2).GetComponent <Image>().sprite = npcSprite.sprite;

        canvasTransform.GetChild(4).GetComponent <Text>().text = hit.collider.name;
        canvasTransform.GetChild(5).GetComponent <Text>().text = player.playerName;

        DialogueParameters yesButtonParameters = new DialogueParameters(dialogueYes, canvasTransform, false);

        canvasTransform.GetChild(7).GetComponent <Button>().onClick.AddListener(delegate { StartCoroutine(StartDialogue(yesButtonParameters)); });

        DialogueParameters noButtonParameters = new DialogueParameters(dialogueNo, canvasTransform, false);

        canvasTransform.GetChild(8).GetComponent <Button>().onClick.AddListener(delegate { StartCoroutine(StartDialogue(noButtonParameters)); });

        DialogueParameters defaultParamaters = new DialogueParameters(dialogue, canvasTransform, true);

        StartCoroutine(StartDialogue(defaultParamaters));
    }