Unity - обнаружение столкновений в рамках обнаружения столкновений - PullRequest
1 голос
/ 03 апреля 2019

Я стреляю мячом по блокам, и есть 3 мегаблока, которые делают оружие сильнее. На моем Мегаблоке 1, если столкновение обнаружено с помощью Пулевого шара, который я выстрелил, запустите код. Это отлично работает. Теперь, если был задействован Мегаблок 1 (tag = MegaBlock01), выполните один код, если был затронут Мегаблок 2 и т. Д. Я хотел поместить этот блок кода в каждый Мегаблок, чтобы мне не приходилось писать новый код для каждого .

public void OnTriggerEnter(Collider other)  // This code is on my Mega Blocks
{
    if (other.CompareTag("BulletBall"))  // The Ball has hit me
    {
       StartMegaWeapon01();

        // What I want is:  
        // If my tag is MegaBlock01, run StartMegaWeapon01();
        // If my tag is MegaBlock02, run StartMegaWeapon02();

    }
}

Я хочу обнаружение столкновений в рамках обнаружения столкновений.

1 Ответ

2 голосов
/ 03 апреля 2019

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

Вкл. После того, как вы это получите, достаточно получить тег gameObject из this:

if (gameObject.tag == "MegaBlock01")
    StartMegaWeapon01();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...