@kontay

Как выполнить определённое действие по нажатию на кнопку, но только тогда, когда игрок находится в триггере?

Делаю ранер, и хочу сделать особый элемент геймплея, что если условный объект, находится в условном тригере, и если в этот момент нажат пробел, то этот объект должен уничтожатся. Я перерыл кучу гайдов, ничего похожего не нашёл.
Пытался как-то так:
private void OnTriggerEnter2D(Collider2D coll)
    {
        if (Input.GetKey(KeyCode.Space))
        {
            if (coll.gameObject.tag == "DO")
            {
                Destroy(coll.gameObject);
            }
        }
    }

но не получилось.
  • Вопрос задан
  • 690 просмотров
Пригласить эксперта
Ответы на вопрос 2
LittleBob
@LittleBob
Заведите глобальную bool переменную, которая будет становится true при входе в триггер (onEnterTrigger2D) и при выходе false (onExitTrigger2D), и добавьте эту переменную в условие if (и так же проверку на нажатие) в метод Update.
Ответ написан
KraGenDeveloper
@KraGenDeveloper
Unity Developer
private void OnTriggerStay2D(Collider2D coll)
    {
        if (Input.GetKey(KeyCode.Space))
        {
            if (coll.gameObject.tag == "DO")
            {
                Destroy(coll.gameObject);
            }
        }
    }

Вот тебе документация зайди и почитай о каждом событии - Док-ва
Если в кратце
OnTriggerEnter - засекает вход
OnTriggerStay - засекает когда объект в тригере
OnTriggerExit - засекает выход объекта из тригера
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы