I'm creating a dialogue manager using canvas. It all works, but i want that the canvas disappear when there is no dialogue. The error appear when i collide with the hitbox of the npc, so when the dialogue starts. I have this error :
NullReferenceException: Object reference not set to an instance of an object
public class Appear : MonoBehaviour
{
// Start is called before the first frame update
[SerializeField] Canvas canvaschosen;
void Update()
{
DialogueManager.isActive = false;
if (DialogueManager.isActive == true)
{
canvaschosen.gameObject.SetActive(true);
}
if (DialogueManager.isActive == false)
{
canvaschosen.gameObject.SetActive(false);
}
}
}
This is where i try to show and unshow the canvas
public void StartDialogue()
{
FindObjectOfType<DialogueManager>().OpenDialogue(messages, actors);
}
Where the error is.
Message[] currentMessages;
Actor[] currentActors;
public void OpenDialogue(Message[] messages, Actor[] actors)
{
currentMessages = messages;
currentActors = actors;
activeMessages = 0;
isActive = true;
Debug.Log("Inizio, messaggio caricato: " + messages.Length);
Displaymessages();
}
void Displaymessages()
{
Message messagedisplay = currentMessages[activeMessages];
messageText.text = messagedisplay.message;
Actor actordisplay = currentActors[messagedisplay.actorID];
actorName.text = actordisplay.name;
actorImage.sprite = actordisplay.sprite;
}
This is the part in dialogue manager (I dont put entire code).
Some help?