общий скрипт для нескольких экземпляров unity
у меня есть объект - сундук и кнопка на канвасе. У сундука есть скрипт, которой при приближении игрока к сундуку должен активировать кнопку, иначе скрывать. Это работает, но до момента, пока сундуков не станет два. В таком случае будет работать только первый, второй же, как я понимаю, тоже пытается активировать кнопку, но первый ему не дает этого сделать. Не понимаю, как это исправить
Ответы (1 шт):
Лучше проверяй, не вошёл ли игрок в область где открывается сундук с помощью OnTriggerEnter2D.
Для этого создай функцию OnTriggerEnter2D, где будешь проверять, не вошёл ли игрок в триггерный коллайдер твоего сундука. Обязательно добавь своему сундуку коллайдер и сделай его триггерным, а также добавь своему игроку тэг Player, для того чтобы игра понимала какой объект вошёл в коллайдер сундука.
После добавь функцию OnTriggerExit2D, которая проверяет какой объект вышел из коллайдера сундука.
private void OnTriggerEnter2D(Collider2D other){
if (other.CompareTag("Player"){
uim.OpenClose("openChest", true);
}
}
private void OnTriggerExit2D(Colider2D other){
if (other.CompareTag("Player"){
uim.OpenClose("openChest", false);
}
}
В следующий раз как будешь задавать вопрос, вставляй код текстом а не скриншотом, чтобы его не приходилось переписывать, особенно если код большой.
