首页 > 解决方案 > Unity Collider - Box Collider 和 Mesh Renderer 在碰撞后移动

问题描述

我试图在它们碰撞后将一个游戏对象 B 附加到另一个游戏对象 A。

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

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

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

对象 B 将按预期作为对象 A 的父级。但是在碰撞之后,Mesh Renderer 和 Box Collider 不再相互重叠。为了更好地了解情况,我已经包含了碰撞前、碰撞和碰​​撞图片。

我还注意到,较低的碰撞力也会导致较低的偏移。你知道 Mesh Renderer 和 Box Collider 在碰撞后如何仍然可以相互叠加吗?

谢谢!

标签: c#unity3dcollision

解决方案


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

ABC总是在碰撞


推荐阅读