This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
UnigineEditor
界面概述
资产工作流程
设置和首选项
项目开发
调整节点参数
Setting Up Materials
Setting Up Properties
照明
Landscape Tool
Sandworm
使用编辑器工具执行特定任务
Extending Editor Functionality
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Objects
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
Usage Examples
UnigineScript
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
创建内容
Content Optimization
Materials
Art Samples
Tutorials
注意! 这个版本的文档是过时的,因为它描述了一个较老的SDK版本!请切换到最新SDK版本的文档。
注意! 这个版本的文档描述了一个不再受支持的旧SDK版本!请升级到最新的SDK版本。

Physical Trigger

Physical Trigger是当物理对象进入内部或外部时触发回调的对象。根据其形状,有四种类型的物理触发器:

  • 指定半径的球面触发器
  • 指定半径和高度的胶囊触发器
  • 指定半径和高度的圆柱触发器
  • 沿轴具有指定大小的箱形扳机

要被触发器检测到,物理对象必须同时具有身体(具有与触发器的Physical掩码匹配的Physical掩码)和一个形状(具有与触发器的Collision掩码匹配的Collision掩码)。

也可以为Physical Trigger指定Exclusion掩码,用于防止检测形状冲突。此掩码独立于Collision掩码。

为了避免检测形状与Physical Trigger之间的碰撞,必须满足以下条件:

  • 为形状设置的Collision遮罩必须比赛Physical TriggerCollision掩码。
  • 为形状设置的Exclusion遮罩必须比赛Physical TriggerExclusion掩码。

可以通过API获取参与Physical Trigger接触的物理对象。还可以获得这种对象扫描的形状。此外,您可以获得对象穿透的深度,接触点的坐标及其法线。

也可以看看#

添加物理触发器#

通过UnigineEditor将Physical Trigger添加到场景中:

  1. 跑步UnigineEditor的项目。
  2. 在菜单栏上,单击Create -> Logic -> Physical Trigger

  3. 单击世界上的某个地方以放置Physical Trigger

新的Physical Trigger节点将被添加到UnigineEditor,您将能够通过Parameters窗口对其进行编辑。默认情况下,将创建半径为1的球体触发器。

编辑物理触发器#

Physical Trigger部分(Parameters窗口→Node选项卡)中,可以调整物理触发器的以下参数:

Edit Size

切换Physical Trigger节点的编辑模式。启用后,节点的大小或半径(取决于其大小)类型)可以更改:每侧/轴都用彩色的矩形/圆形突出显示。要更改大小/半径,请拖动相应的矩形/圆形。

球形物理触发器的编辑
Physical Mask Physical TriggerPhysical掩码必须比赛物理对象的Physical掩码。否则,当对象进入或离开对象时,Physical Trigger不会触发回调。
Collision Mask
  • 对于物理对象,必须将Physical TriggerCollision掩码比赛物理对象形状的Collision蒙版。
  • 如果是非物理碰撞对象,则Physical TriggerCollision掩码必须比赛对象表面的Collision蒙版。
Type Physical Trigger的类型:sphere, capsule, cylinderbox
Size

Physical Trigger的大小,即:

  • 球体半径
  • 胶囊或圆柱体的半径高度
  • 包装盒尺寸

设置回调#

要添加回车或离开回调,请编写一个回调函数,该函数将Body作为其第一个参数。然后使用addEnterCallback()addLeaveCallback方法指定要调用的函数。

源代码 (C++)
// add the enter callback to be fired when a body enters the physical trigger
physicalTrigger->addEnterCallback(MakeCallback(this, &AppWorldLogic::enter_callback));
// add the leave callback to be fired when a body leaves the physical trigger
physicalTrigger->addLeaveCallback(MakeCallback(this, &AppWorldLogic::leave_callback));
源代码 (C#)
// add the enter callback to be fired when a body enters the physical trigger
physicalTrigger.addEnterCallback(enter_callback);
// add the leave callback to be fired when a body leaves the physical trigger
physicalTrigger.addLeaveCallback(leave_callback);
最新更新: 2021-04-29
Build: ()