Столкновение спрайтов в единстве - PullRequest
0 голосов
/ 22 декабря 2019

Как заставить мой powerup (2D-спрайт) уничтожить себя, когда игрок (другой 2D-спрайт) вводит свой триггер в единицу?

У меня они оба на слое сортировки 6 (На устройстве визуализации спрайтов),Я не слишком уверен, что я сделал неправильно. Вот что у меня на включении в данный момент:

void OnTriggerEnter(Collider other)
{
    if (other.gameObject.name == "Player")
    {
        Debug.Log("Collided");
        Destroy(this.gameObject);
    }
}

1 Ответ

1 голос
/ 22 декабря 2019

Вам необходимо использовать 2D-версию сообщения. https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerEnter2D.html

Кроме того, по крайней мере один из объектов нуждается в компоненте твердого тела, если у него его еще нет.

В противном случае это технически должно работать. Однако есть лучшие способы проверить, является ли столкнувшийся объект игроком. Вы, вероятно, ищете что-то простое в настройке и не слишком сложное, в этом случае я бы рекомендовал дать ему layer (или tag , но теги вроде бы отстойные, потому что выможет иметь только один - это не совсем тэг, по моему мнению), и проверьте его вместо имени.

О, и, наконец, вам не нужно ключевое слово this в этом контексте.

...