Различать коробочный коллайдер двух разных игровых объектов в UNITY
У меня два GameObjects
Body1
а также 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);
}
Надеюсь это поможет! Ура!