У меня есть игра, где, если невидимый ящик касается объекта и нажимает «e», текст будет отображаться в зависимости от того, к какому объекту прикоснулись.Проблема в том, что иногда (это довольно случайно) текст запускается три раза.Я пытался вставить ключ ввода в обновление, я пытался проверить некоторые логические значения, если он запускался более одного раза, я проверил, есть ли более одного сценария, но ничего не работает.
private void OnTriggerStay(Collider other)
{
if (Input.GetKeyDown(name: "e") && other.tag == "Mar Room")
{
switch (other.gameObject.name)
{
case "Cushion1":
other.transform.rotation = Quaternion.Euler(-90, 0, 0);
other.transform.localPosition = new Vector3(-206.849f, 108.2456f, -48.99983f);
runSentence("CouchText");
Debug.Log("I have been called cush");
items += 1;
break;
case "Chair":
other.transform.rotation = Quaternion.Euler(-90, 0, 90);
other.transform.localPosition = new Vector3(-182.399f, 108.6756f, -16.16f);
runSentence("ChairText");
Debug.Log("I have been called chair");
items += 1;
break;
case "Lamp":
other.transform.rotation = Quaternion.Euler(-90, 0, 0);
other.transform.localPosition = new Vector3(-180.779f, 111.3156f, -47.82983f);
runSentence("LampText");
items += 1;
Debug.Log("I have been called lamp");
break;
case "Time":
other.transform.rotation = Quaternion.Euler(0, 90, 0);
other.transform.localPosition = new Vector3(-178.499f, 110.5756f, -37.59983f);
runSentence("HourglassText");
items += 1;
Debug.Log("I have been called time");
break;
case "Art":
other.transform.rotation = Quaternion.Euler(0, 0, 0);
other.transform.localPosition = new Vector3(-190.499f, 113.3056f, -51.31983f);
runSentence("PictureText");
items += 1;
Debug.Log("I have been called art");
break;
default:
break;
}
}
}