-1

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

4

1 回答 1

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

有了这个,您可以获得对象的名称。但是,如果我的问题是正确的,那么它们都有碰撞器并且body1命中与命中body2完全相同body2body1

您可以进行区分,如果其中一个静止不动(没有改变位置)而另一个在移动,那么您可以说body1命中body2或任何您的情况。

要实现这一点,您可以使用布尔值,例如isObjectMoving. 你可以检查它Update()。如果transform.position正在改变 bool 将是真的,你将在 if 语句中检查它

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

希望这可以帮助!干杯!

于 2017-07-29T11:02:37.593 回答