U3D问题总结(四) 物理相关
💡
原文中文,约1400字,阅读约需4分钟。
📝
内容提要
本文总结了Unity3D中的物理知识,包括射线检测、碰撞器与触发器的区别、碰撞的必要条件及处理方法。碰撞检测需要至少一个物体带有刚体,碰撞过程分为三个阶段。讨论了如何避免细小物体穿透大物体的情况,以及刚体与角色控制器的区别,最后介绍了链条关节的概念。
🎯
关键要点
- 射线检测是从3D世界中的一个点向一个方向发射的无终点线,碰撞时停止发射。
- 碰撞器是触发器的载体,触发器的属性Is Trigger为false时会产生碰撞效果,Is Trigger为true时则被物理引擎忽略。
- 发生碰撞的必要条件是两个物体都必须带有碰撞器,且至少有一个物体带有刚体或角色控制器。
- 物体发生碰撞的过程分为三个阶段:OnCollisionEnter、OnCollisionStay和OnCollisionExit。
- 避免细小物体穿透大物体的方法包括增大细小物体的碰撞体、使用射线检测、修改FixedUpdate频率、改变物体速度、使用连续检测模式以及提前计算下一个位置。
- 刚体用于模拟真实的物理效果,能够受到重力和其他力的作用,而角色控制器是受限的刚体,适合开发第一人称视角的游戏。
- 链条关节(Hinge Joint)可以模拟两个物体间用链条连接的情况,保持固定距离内相互移动,达到固定距离后会产生拉力。
❓
延伸问答
什么是射线检测,它的作用是什么?
射线检测是从3D世界中的一个点向一个方向发射的无终点线,碰撞时停止发射,用于检测物体之间的碰撞。
碰撞器和触发器有什么区别?
碰撞器是触发器的载体,Is Trigger为false时会产生碰撞效果,Is Trigger为true时则被物理引擎忽略。
物体发生碰撞的必要条件是什么?
发生碰撞的必要条件是两个物体都必须带有碰撞器,且至少有一个物体带有刚体或角色控制器。
如何避免细小物体穿透大物体的情况?
可以通过增大细小物体的碰撞体、使用射线检测、修改FixedUpdate频率、改变物体速度、使用连续检测模式等方法来避免。
刚体和角色控制器有什么区别?
刚体用于模拟真实的物理效果,能够受到重力和其他力的作用,而角色控制器是受限的刚体,适合开发第一人称视角的游戏。
什么是链条关节,它的功能是什么?
链条关节(Hinge Joint)可以模拟两个物体间用链条连接的情况,保持固定距离内相互移动,达到固定距离后会产生拉力。
➡️