DOMANDA sistema di dialoghi

Repeagle

Nuovo Utente
12
1
Salve, volevo sapere se qualcuno poteva aiutarmi con gli script del mio sistema di dialoghi per un gioco in unity 2d

il sistema per ora si divide in due comandi:
1) dialoguemanager (assegnato a un oggetto (chiamato allo stesso modo)figlio di una canvas e con figli un box e un testo)
Cattura.PNG
questo è come appare nell' inspector
Cattura3.PNG
e questo è il codice :
Codice:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class DialogueManager : MonoBehaviour {
    public GameObject dBox;
    public Text dText;

    public bool dialogActive;
    public int Ndialog = 1;
   



    // Use this for initialization
    void Start () {
        
    }
    
    // Update is called once per frame
    void Update () {
        if (dialogActive && Input.GetKeyDown(KeyCode.Z)) 
        {
            dBox.SetActive(false);
            dialogActive = false;

        }
    }
   
    public void ShowBox(string dialogue , string dialogue2)
    {
        dialogActive = true;
        dBox.SetActive(true);
        if(Ndialog == 1)
        { dText.text = dialogue;
            Ndialog++;

        }
        else if (Ndialog == 2)
        {  dText.text = dialogue2;
    }
}

}

2)il dialogHolder(assegnato a un oggetto (dialoguezone) figlio di un oggetto con cui "parlare")
Cattura4.PNG
cosi è come appare lo script nell' inspector
Cattura2.PNG
e questo è il codice:
Codice:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class dialogHolder : MonoBehaviour {
   
    public string dialogue;
    public string dialogue2;
    private DialogueManager dMan;

    // Use this for initialization
    void Start () {
        dMan = FindObjectOfType<DialogueManager>();
    }
    
    // Update is called once per frame
    void Update () {
        
    }

    void OnTriggerStay2D(Collider2D other)
    {
     if(other.gameObject.name == "Player")
        {
         if(Input.GetKeyUp(KeyCode.Z))
            {
                dMan.ShowBox(dialogue,dialogue2);
            }
        }
    }
}

il mio problema è che dopo aver interagito con un oggetto 1 nel gioco e aver portato l' int Ndialog a 2, interagendo con un oggetto2 della scena,anche se è la prima volta, mi viene dato come dialogo il dialogue 2 di quell' oggetto,e non dialogue 1, poiche Ndialog è diventato 2 interagendo con il primo oggetto. mi servirebbe uno script che riporti Ndialog a 1 quando si interagisce con un altro oggetto della scena.qualcuno saprebbe darmi una mano?
grazie
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!