Различать коробочный коллайдер двух разных игровых объектов в UNITY

У меня два GameObjectsBody1 а также Body2Оба имеют отдельные BoxCollider, я хочу определить, какие GameObject (Body1 или же Body2) ударил другого.

1 ответ

void OnCollisionEnter (Collision col)
    {
        Debug.Log(col.gameObject.name);
    }

При этом вы можете получить название объекта. Но если я правильно понял ваш вопрос, у них обоих есть коллайдер и body1 хиты body2 совсем то же самое с body2 хиты body1

Вы можете различить, если один из них стоит на месте (положение не изменилось), а другой движется, то вы можете сказать body1 хиты body2 или каково ваше состояние.

Для достижения этого вы можете использовать bool, как isObjectMoving, Вы можете проверить это в Update(), Если transform.position меняется bool будет true, и вы проверите его, если заявление

void OnCollisionEnter (Collision col)
        {
            if(col.gameObject.getComponent<YourBoolScriptName>().isObjectMoving == true)
            //Debug.Log(the other body hit me);
        }

Надеюсь это поможет! Ура!

Другие вопросы по тегам