我有两个GameObjects Body1和Body2,两个都有单独BoxCollider的。我想确定哪个GameObject(Body1或Body2)击中了另一个。
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 回答