Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 区分统一中两个不同游戏对象的方块碰撞器_Unity3d_Collision Detection_Collision_Collider - Fatal编程技术网

Unity3d 区分统一中两个不同游戏对象的方块碰撞器

Unity3d 区分统一中两个不同游戏对象的方块碰撞器,unity3d,collision-detection,collision,collider,Unity3d,Collision Detection,Collision,Collider,我有两个GameObjectsBody1和Body2,它们都有独立的BoxCollider。我想确定哪个GameObject(Body1或Body2)击中了另一个 void OnCollisionEnter (Collision col) { Debug.Log(col.gameObject.name); } 通过这个,您可以获得对象的名称。但是如果我没有弄错你的问题,它们都有碰撞器,body1hitsbody2与body2hitsbody1 如果其中一个站着不

我有两个
GameObjects
Body1
Body2
,它们都有独立的
BoxCollider
。我想确定哪个
GameObject
Body1
Body2
)击中了另一个

void OnCollisionEnter (Collision col)
    {
        Debug.Log(col.gameObject.name);
    }
通过这个,您可以获得对象的名称。但是如果我没有弄错你的问题,它们都有碰撞器,
body1
hits
body2
body2
hits
body1

如果其中一个站着不动(没有位置改变),而另一个在移动,则可以说
body1
hits
body2
或任何您的情况

要实现这一点,可以使用bool,如
isObjectMoving
。您可以在
Update()
中检查它。If
transform.position
正在更改,bool将为true,您将在If语句中检查它

void OnCollisionEnter (Collision col)
        {
            if(col.gameObject.getComponent<YourBoolScriptName>().isObjectMoving == true)
            //Debug.Log(the other body hit me);
        }
void OnCollisionEnter(冲突列)
{
if(col.gameObject.getComponent().isObjectMoving==true)
//Log(另一个实体击中了我);
}
希望这有帮助!干杯