общий скрипт для нескольких экземпляров unity

Рейтинг: 0Ответов: 1Опубликовано: 30.01.2023

у меня есть объект - сундук и кнопка на канвасе. У сундука есть скрипт, которой при приближении игрока к сундуку должен активировать кнопку, иначе скрывать. Это работает, но до момента, пока сундуков не станет два. В таком случае будет работать только первый, второй же, как я понимаю, тоже пытается активировать кнопку, но первый ему не дает этого сделать. Не понимаю, как это исправить

вот код сундука, который использую

Ответы

▲ 0Принят

Лучше проверяй, не вошёл ли игрок в область где открывается сундук с помощью 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);
    }
}

В следующий раз как будешь задавать вопрос, вставляй код текстом а не скриншотом, чтобы его не приходилось переписывать, особенно если код большой.