1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Проблема с onTriggerEnter

Тема в разделе "Unity3D", создана пользователем darkness.00, 12 июл 2014.

Модераторы: punkvideo
  1. darkness.00

    darkness.00 Активный участник

    С нами с:
    09.06.2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    10
    Здравствуйте. Просматриваю курс по юнити и застрял на одном моменте. Есть персонаж и триггер, который должен срабатывать при пересечении его персонажем.
    Код:
    void onTriggerEnter (Collider other)
            {
                    if (other.tag == "Player")
                    {
                    collider.isTrigger = true;
                    }
       
            }
    на персонаже стоит тег Player, но при пересечении им триггера, не выполняется условие. тестировал с простым кубиком, котороый просто падает на триггер и имеет такой же тег, тоже не работает. подскажите пожалуйста в чем может быть проблема.
     
  2. BeLiar

    BeLiar Активный участник

    С нами с:
    08.10.2007
    Сообщения:
    206
    Симпатии:
    21
    Баллы:
    17
    Во-первых: эта строчка "collider.isTrigger = true;" соответствует галочке в эдиторе. Если она на момент запуска не будет установлена, то события этого триггера никогда и не будут вызваны.

    Во-вторых: Когда галочка установлена изначально, компонент-коллайдер становиться "зоной реакции". Чтоб с ней взаимодействовать нужен объект с компонентами коллайдера и ригидБоди(!!!). Скрипт с реакцией триггера должен быть на том же объекте, что и коллайдер-триггер.
    Так же в настройках физики проекта, в матрице столкновений, между слоями этих объектов должны быть включены столкновения.

    Вообще на сайте юнити есть обучающий видеоурок, как раз на тему триггеров, советую посмореть.
     
  3. darkness.00

    darkness.00 Активный участник

    С нами с:
    09.06.2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    10
    Извиняюсь, что подробно не описал все настройки. На прикреплённом изображении видно как всё настроено. По сути делал всё как в видеоуроке, не могу найти почему не работает.
     

    Вложения:

  4. BeLiar

    BeLiar Активный участник

    С нами с:
    08.10.2007
    Сообщения:
    206
    Симпатии:
    21
    Баллы:
    17
    Дебаг.лог расставить и посмотреть, срабатывает ли вообще событие и остальные его этапы.
    В режиме игры поставить на паузу и убедиться, что коллайдеры пересекаются.

    А вообще надо проект смотреть и ковырять. Это случаем не Indie Game Development Pipeline?
     
  5. darkness.00

    darkness.00 Активный участник

    С нами с:
    09.06.2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    10
    Да, это он. Дебагом пользоваться пока не умею, пробовал перенести туда другое событие из void update, которое точно работает, в триггере оно тоже не срабатывает. уже всё перепробовал, перерыл гугл, не могу найти в чём проблема.
     
  6. BeLiar

    BeLiar Активный участник

    С нами с:
    08.10.2007
    Сообщения:
    206
    Симпатии:
    21
    Баллы:
    17
    да тут гугл не поможет. Можно попробовать задать вопрос на сайте юнити, но я бы советовал просто разобраться самому:
    Сделать простую сцену, сымитировать столкновение по триггеру. Убедиться, что работает.
    Потом заменить на свои объекты по одному в этой сцену. Убедиться, что работает.
    Потом сравнить параметры с нужной сценой или заново создать объекты в нужной сцене с нуля.

    Кстати там в коде уже onTriggerEXIT, а не Enter.
     
  7. darkness.00

    darkness.00 Активный участник

    С нами с:
    09.06.2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    10
    Да всё уже перепробовал, я в тупике просто. Да, там onTriggerEXIT, я экспериментировал с энтер и по ошибке вставил в название темы.
     
  8. Cibergod

    Cibergod Активный участник

    С нами с:
    11.05.2006
    Сообщения:
    48
    Симпатии:
    8
    Баллы:
    7
    Чтобы триггер срабатывал он должен пересекаться жестким телом и у триггера не должна стоять галка
     
Модераторы: punkvideo

Поделиться этой страницей