简介
在Unity3D中,检测碰撞发生的方式有两种:
- 利用碰撞体
- 利用触发器
在很多游戏引擎或工具中都有触发器,他被用来触发事件
碰撞体与触发器的区别在于:
- 碰撞体是触发器的载体
- 触发器只是碰撞体的一个属性
如果既想要检测到物理的接触,又不想让碰撞检测影响物体的移动,或者要检测一个物体是否经过控件中的某个区域,这是就可以用到触发器
例如:碰撞体适合模拟汽车被撞飞、皮球掉在地上又反弹的效果,而触发器适合模拟人站在靠近门的位置时门自动打开的效果
触发条件
在unity3D中要实现触发检测,需要满足以下条件:
1、两个物体都具有Collider组件
2、至少有一个物体拥有Rigidbody组件
3、至少有一个物体的Collider组件勾选了Is Trigger
触发三阶段:
MonoBehaviour.OnTriggerEnter:当进入触发器时触发
MonoBehaviour.OnTriggerExit:当退出触发器时触发
MonoBehaviour.OnTriggerStay:当逗留在触发器中触发
角色控制器
我们可以使用刚体控制游戏对象行为,刚体会受到里的作用,在与其他刚体发生碰撞的时候,很可能被撞飞,但是在游戏当中大多数时候,我们对于任务角色是不希望产生这种被撞飞的效果的。另外我们在很多时候其实不需要游戏对象按照显示的规律运动,比如说停止运动我们需要角色立即停止运动,如果用刚体去控制物体行为的话,没有办法很好的满足这种需求。
比如,在FPS游戏中,如CS,任务之间是有碰撞,但是不会被碰撞撞飞,停止运动时也不会受到惯性作用,因此,为了更好的满足这样的需求,需要用到角色控制器(Character Controller)。

本文介绍了Unity3D中的碰撞检测机制,包括碰撞体与触发器的区别,以及如何设置触发条件。角色控制器用于避免刚体碰撞产生的不理想效果,适合角色移动控制。此外,还探讨了布料系统在模拟真实物理效果中的应用,如衣物摆动。最后,详细阐述了各种关节类型,如铰链关节、固定关节、弹簧关节等,及其在游戏中的应用场景。

5491

被折叠的 条评论
为什么被折叠?



