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)可以模拟两个物体间用链条连接的情况,保持固定距离内相互移动,达到固定距离后会产生拉力。

➡️

继续阅读