Как заставить некоторые коллайдеры игнорировать триггеры в Unity 3D? - PullRequest
2 голосов
/ 20 марта 2019

В настоящее время я делаю шутер от первого лица со мной, игроком, борющимся против зомби.Итак, у меня есть коробки с боеприпасами, разбросанные по карте с помощью этой функции:

void OnTriggerEnter(Collider other)
{

    AmmoSound.Play();

    if (Ammo_count.LoadedAmmo == 0)
    {
        Ammo_count.LoadedAmmo += 10;
        this.gameObject.SetActive(false);

    }
    else
    {
        Ammo_count.CurrentAmmo += 10;
        this.gameObject.SetActive(false);

    }

}

Этот код отлично работает, так как у меня есть коллайдер меша для моего персонажа, который является «триггером» и «выпуклым»;но проблема у меня в том, что мой зомби тоже может забрать патроны.Это создает несколько других проблем в моих сценариях.Так есть ли способ помешать зомби забрать патроны?Зомби-коллайдер не является «триггером»;но он все еще может забрать боеприпасы.

1 Ответ

3 голосов
/ 20 марта 2019

Самый простой способ решить вашу проблему - использовать теги, указанные в комментариях.Добавьте тег «player» к игровому объекту игрока и оберните свой код подбора боеприпасов в оператор if, как показано ниже:

void OnTriggerEnter(Collider other)
{
    if (other.gameObject.tag == "player")
    {
        AmmoSound.Play();

        if (Ammo_count.LoadedAmmo == 0)
        {
            Ammo_count.LoadedAmmo += 10;
            this.gameObject.SetActive(false);
        }
        else
        {
            Ammo_count.CurrentAmmo += 10;
            this.gameObject.SetActive(false);
        }
    }
}

Чтобы ответить на вопрос так, как написано: некоторые коллизии можно игнорировать, изменив слой столкновения матрицы .Например, вы можете применить слой к вашим боеприпасам, называемый «пикап», и слой для ваших зомби, называемый «враг».Затем вы можете изменить матрицу столкновений слоев, чтобы слои противника и пикапа не взаимодействовали.

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