Muy buenas, llevo varios días intento pasar de un diálogo a otro, sinceramente la manera de hacerlo tal vez no sea la más óptima, pero bueno, de momento con conseguirlo me conformo, después depuraré el código.
El problema que tengo es que mi código se va directamente a la segunda frase, y no sé como decirle que eso sólo debe hacerlo al pulsar por segunda vez la tecla "J"
Aquí os dejo el código, es C# aunque haya puesto JavaScript para que se coloree un poquito:
PD: El script hace referencia al método GetMsg, el cuál está en otro script, no voy a poneros ese script porque no viene al caso y funciona perfectamente :) .
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine;
public class DeteccionDialogo : MonoBehaviour {
[SerializeField] GameObject PanelMsg;
[SerializeField] Text msgText;
[SerializeField] GameObject ButtonTalk;
bool talking = false;
bool PressTalk = false;
int frases;
int contadorfrase;
void Start () {
GetComponent<Collider> ().isTrigger = true;
PanelMsg.SetActive (false);
ButtonTalk.SetActive (false);
}
void OnTriggerEnter (Collider other) {
if (other.CompareTag("npc")) {
print ("Tag Comparado"); // Se comparan los tags y si es NPC aparece el cartel para hablar
ButtonTalk.SetActive (true);
}
}
void OnTriggerStay (Collider other) {
if (other.name == "npc_1" && Input.GetKey("j") ) { // Si el nombre del otro collider es npc_1 y pulsas la tecla J... (FUNCIONA)
ButtonTalk.SetActive (false);
string msg = other.GetComponent<msgNpcS> ().GetMsg_1_1_1 (); //Si el NPC es el 1, se muestra el texto del método GetMsg_1 (FUNCIONA)
msgText.text = msg;
PanelMsg.SetActive (true);
if (Input.GetKey ("j")) {
msg = other.GetComponent<msgNpcS> ().GetMsg_1_1_2 (); //Al pulsar DE NUEVO la tecla J, debería mostrar el siguiente texto.. (NO FUNCIONA)
msgText.text = msg;
PanelMsg.SetActive (true);
}
}
}
void OnTriggerExit (Collider other) {
if(other.CompareTag("npc")){
ButtonTalk.SetActive