Unit Collider-碰撞后的Box Collider和Mesh Renderer移动

问题描述 投票:0回答:1

我试图在它们碰撞后将一个GameObject B附加到另一个GameObjectA。

Box Colliders和Rigidbody都附加到两个对象。以下代码启用对象合并:

private void OnCollisionEnter(Collision collision)
{
   collision.gameObject.transform.SetParent(transform,true);
}

否则没有其他脚本会影响对象

对象B将按预期作为对象A的父项。但是,在碰撞之后,Mesh Renderer和Box Collider不再相互重叠。为了更好地了解情况,我添加了图片before the collisionwhile the collisionafter the collision

我还注意到较低的碰撞力也会导致较低的偏移。您是否知道在碰撞后网格渲染器和Box Collider如何仍然可以彼此叠放?

谢谢!

c# unity3d collision
1个回答
0
投票

当您将对象B作为对象A的父对象时,其局部变换将乘以A的平移/旋转/缩放比例。解决方案是使对象C为对象A的父对象,该对象的旋转度为0,0,0,比例为1,1,1,当对象A与对象B碰撞时,使C为B的父对象。

ABC一直在碰撞

© www.soinside.com 2019 - 2024. All rights reserved.