Unity学习笔记 Vol.63 物理交互:Collider(碰撞体)和Triggers(触发器)
摘要
在大多数Unity项目中,都需要创建物理交互。需要物理学的情况将包括对重力的任何使用,或者物体碰撞并相互反应的情况。在本教程中,您将学习如何使用碰撞器和触发器来控制物理交互。
1.物理交互:碰撞体和触发器
在大多数Unity项目中,都需要创建物理交互。需要物理学的情况将包括对重力的任何使用,或物体碰撞并相互反应的情况。将碰撞器应用于GameObject,以在物理模拟中表示其物理形式。默认情况下,应用了Rigidbody组件的GameObjects将被Collider阻止(碰撞)。虽然碰撞器可以阻止刚体,但它们也可以用作触发器。当对撞机设置为触发器时,它将检测来自其他游戏对象的外部交互,并执行脚本内OnTriggerEnter,OnTriggerExit或OnTriggerStay函数中的代码。
2.添加碰撞体
在场景中选择任何3D GameObject
在检查器中,单击“ Add Component(添加组件)” 按钮
选择Physics(物理) 类别,然后选择最能代表3D游戏对象物理形状的碰撞器(图01 )

重要的是要记住,尽管碰撞器是用来表示GameObjects的物理属性的,但是表示的精确度会根据项目的需要而变化。例如,Avatars或角色可以使用Capsule Collider。这只是为了防止虚拟形象掉落到地板上或穿过墙壁。
3.使用触发器
触发器不会阻止刚体。它们旨在允许刚体通过它们并在OnTrigger事件中执行代码。
在层次结构中,单击Create(创建)> Create Empty(创建空物体)以创建一个空的游戏对象
选择“空物体”后,在检查器中单击“ Add Component(添加组件)” 。
选择“ Physcis(物理)” > “Box Collider(盒形碰撞体)”
将Box Collider组件中的Is Trigger(可触发)开启(图02 )

启用Edit Collider 修改触发器的形状(图03 )
拖动触发器两侧的各种手柄以交互方式修改其形状

请记住,碰撞体会阻止场景中的其他刚体,但是它们也可以用于使用脚本触发事件。创建关卡时,请使用扳机打开门,造成环境危害或您能想到的任何事情。
注意
碰撞体之间还需要注意两者的层级是否可以产生影响。

如果不产生作用和触发的效果。可以在Edit - Project Settings中的Physics选项中,找到Layer Collision Matrix选项,并打开图表,查看想要产生作用的两个碰撞体间是否已勾选。如果未勾选,则表示两者不能产生作用效果。
