c# - 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 在碰撞后如何仍然可以相互叠加吗?
谢谢!
解决方案
当您将对象 B 作为对象 A 的父对象时,其局部变换将乘以 A 的平移/旋转/缩放。解决方案使对象 C 是对象 A 的父对象,其旋转 0,0,0 和缩放 1,1,1,当对象 A 与对象 B 碰撞时,使 C 成为 B 的父对象。
ABC总是在碰撞
推荐阅读
- java - JWT 身份验证回退到相同路径的 SAML2
- typo3 - 如何在 TyPO3 的侧边栏上添加导航菜单
- java - 当监听器保持隐式引用时修复活动泄漏
- excel - 如何在 VBA 中的单个列中附加字符串
- ruby-on-rails - 如何为在数据库中存储为日期时间的复选框属性添加表单标签?
- csv - 将 Web 上的 CSV 文件中的数据附加到 Microsoft Power BI 中的表
- python - 需要使用 pandas 根据列数据中的月份对数据进行分组
- html - PrimeNG - 如何删除“p-tabview”元素(,
- Angular UI 上动态呈现的元素)?
- javascript - TypeError:无法读取 null、REACTJS 和 Axios 的属性“地图”
- r - Y 轴标签不会使用 ggiraph 正确对齐闪亮