欢迎光临散文网 会员登陆 & 注册

Unity学习笔记 Vol.63 物理交互:Collider(碰撞体)和Triggers(触发器)

2020-07-16 07:57 作者:NXL2  | 我要投稿

摘要

在大多数Unity项目中,都需要创建物理交互。需要物理学的情况将包括对重力的任何使用,或者物体碰撞并相互反应的情况。在本教程中,您将学习如何使用碰撞器和触发器来控制物理交互。


1.物理交互:碰撞体和触发器

在大多数Unity项目中,都需要创建物理交互。需要物理学的情况将包括对重力的任何使用,或物体碰撞并相互反应的情况。将碰撞器应用于GameObject,以在物理模拟中表示其物理形式。默认情况下,应用了Rigidbody组件的GameObjects将被Collider阻止(碰撞)。虽然碰撞器可以阻止刚体,但它们也可以用作触发器。当对撞机设置为触发器时,它将检测来自其他游戏对象的外部交互,并执行脚本内OnTriggerEnter,OnTriggerExit或OnTriggerStay函数中的代码。


2.添加碰撞体

  • 在场景中选择任何3D GameObject

  • 在检查器中,单击“ Add Component(添加组件)” 按钮

  • 选择Physics(物理) 类别,然后选择最能代表3D游戏对象物理形状的碰撞器(图01

图01:已将Capsule Collider添加到角色中

重要的是要记住,尽管碰撞器是用来表示GameObjects的物理属性的,但是表示的精确度会根据项目的需要而变化。例如,Avatars或角色可以使用Capsule Collider。这只是为了防止虚拟形象掉落到地板上或穿过墙壁。


3.使用触发器

触发器不会阻止刚体。它们旨在允许刚体通过它们并在OnTrigger事件中执行代码。

  • 在层次结构中,单击Create(创建)> Create Empty(创建空物体)以创建一个空的游戏对象

  • 选择“空物体”后,在检查器中单击“ Add Component(添加组件)”

  • 选择“ Physcis(物理)” > “Box Collider(盒形碰撞体)”

  • Box Collider组件中的Is Trigger(可触发)开启图02 

将Box Collider组件中的 Is Trigger勾选(图02 )
  • 启用Edit Collider 修改触发器的形状(图03

  • 拖动触发器两侧的各种手柄以交互方式修改其形状

编辑碰撞体开启时(图3)

请记住,碰撞体会阻止场景中的其他刚体,但是它们也可以用于使用脚本触发事件。创建关卡时,请使用扳机打开门,造成环境危害或您能想到的任何事情。


 注意

碰撞体之间还需要注意两者的层级是否可以产生影响。

注意层级的设置(图4)

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

层级碰撞矩阵表(图5


Unity学习笔记 Vol.63 物理交互:Collider(碰撞体)和Triggers(触发器)的评论 (共 条)

分享到微博请遵守国家法律