Unity - определять столкновение предметов с разными «тегами» - PullRequest
0 голосов
/ 05 июня 2018

Three different colored blocks colliding with three other different colored blocks

Я начинаю с Unity2D.У меня есть три блока разного цвета (три нижних блока на рисунке), поднимающиеся с постоянной силой.Каждый из нижних блоков помечен метками «Красный», «Синий» и «Желтый».Верхние блоки также помечены соответствующими цветами.

Кроме того, к каждому объекту прикреплено isTrigger boxcollider2D.Я хочу Debug.Log сообщение типа "Игра окончена", если два разных цвета сталкиваются друг с другом.

Я понимаю, что мне нужно использовать OnTriggerEnter2D в некотором качестве, но я не знаю, как,Любая помощь будет принята с благодарностью!

[EDIT] В настоящее время это то, что у меня есть (и это не работает так, как я хочу).

void OnTriggerEnter2D(Collider2D col)
{
    if (col.tag != "Red")
    {
        Debug.Log("Game Over");
    }
    if (col.tag != "Blue")
    {
        Debug.Log("Game Over");
    }
    if (col.tag != "Yellow")
    {
        Debug.Log("Game Over");                 
    }
}

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

OnTriggerEnter2D вызывается каждый раз, когда ваш игровой объект сталкивается с другим коллайдером.Один из сталкивающихся игровых объектов нуждается в жестком теле2D, иначе OnTriggerEnter2D не будет вызван.

Я предполагаю, что у вас возникла проблема с логикой оператора if, а не с вызовом OnTriggerEnter2D, и вы хотите вызвать "Game Over"Функция «если теги сталкивающихся игровых объектов не совпадают.

Таким образом, вы хотите сравнить теги обоих сталкивающихся игровых объектов, а не тег одного сталкивающегося объекта с несколькими другими тегами.

private void OnTriggerEnter2D(Collider2D col)
{
    if (col.CompareTag(gameObject.tag) == false)
        Debug.Log("This is NOT the same Color!");
    else
        Debug.Log("This is the same Color!");
}
0 голосов
/ 05 июня 2018

Ты ставишь.!Отмечается на ваших заявлениях if.Это означает, что тег не равен.Было бы полезно, если бы вы сказали, что вы имеете в виду, не работая так, как вы хотите.Если не равно, что вы хотите, то я не вижу проблемы, и он должен где-то еще в вашем коде.

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