Как регистрировать игровые объекты, сталкивающиеся в Unity - PullRequest
0 голосов
/ 14 ноября 2018

Это мой первый проект по объединению, поэтому я довольно незнаком со всем, что есть у платформы.Я пытаюсь записать сообщение на консоль, когда мой игровой объект игрока попадает в финишную черту.На обоих объектах есть Box Colliders, и я прикрепил скрипт C # к объекту player.Ниже приведен код, который у меня есть в настоящее время.

 void OnCollisionEnter2D(Collision2D col)
{
     if (col.gameObject.tag == "Finish")
    {
        Debug.Log("Finish");


    }
}

Проблема в том, что при перемещении плеера в объект «Готово» внутри консоли не появляется логирование.Заранее спасибо!

Это вкладка главного инспектора игрока

Это вкладка инспектора финишной линии

Ответы [ 3 ]

0 голосов
/ 14 ноября 2018

Ваш скрипт, прикрепленный к игроку, проверяет наличие столкновения с объектом с тегом «Готово».Ваш объект "Финишная черта" имеет тег "без тегов".Вы должны добавить тег «Готово», чтобы увидеть, как он работает.

0 голосов
/ 14 ноября 2018

С обновленным вопросом и скриншотами проблема заключается в том, что вы проверяете тег "Готово" , но тег "Готово" GameObject установлен на "Untagged", поэтомуоператор if (col.gameObject.tag == "Finish") будет не иметь значение true.

У вас есть два варианта:

1 .Выберите «Завершить» GameObject, щелкните тег «Untagged» и создайте новый тег «Finish».Если у вас уже есть этот тег, измените тег GameObject «Finish» с «Untagged» на «Finish», и ваш код if (col.gameObject.tag == "Finish") должен работать.


2 .Если вы не намеревались использовать тег, просто сравните GameObject по имени вместо тега, просто заменив if (col.gameObject.tag == "Finish") на if (col.gameObject.name == "Finish").

Если ни один из двух приведенных выше вариантов не сработал, то OnCollisionEnter2Dвообще не вызывать.Поставьте Debug.Log за пределами оператора if, как показано ниже, и оставьте комментарий о том, есть ли журнал.

void OnCollisionEnter2D(Collision2D col)
{
    Debug.Log("Finish: " + col.gameObject.name);
}
0 голосов
/ 14 ноября 2018

Просто первая идея, которая пришла в голову: - Вы добавили коллайдеры на оба объекта, которые должны столкнуться? Без них движок вообще не будет генерировать события столкновения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...