区分UNITY中两个不同游戏对象的盒子对撞机

时间:2017-07-29 10:38:20

标签: unity3d collision-detection collision collider

我有两个GameObjects Body1Body2,两者都有单独的BoxCollider。我想确定哪个GameObjectBody1Body2)击中了另一个。

1 个答案:

答案 0 :(得分:0)

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

通过这个,您可以获得对象的名称。但如果我的问题是正确的,那么它们都有对撞机,而body1点击body2与点击率body2完全相同body1

如果其中一个人站着不动(没有位置改变)而另一个人正在移动,你可以说出歧视,那么你可以说body1命中body2或者你的条件是什么。< / p>

要实现此目的,您可以使用bool,例如isObjectMoving。您可以在Update()中查看。如果transform.position正在改变,则bool将为true,您将在if语句

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

希望这有帮助!干杯!