This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
基础
专业(SIM)
UnigineEditor
界面概述
资源工作流程
版本控制
设置和首选项
项目开发
调整节点参数
Setting Up Materials
设置属性
照明
Sandworm
使用编辑器工具执行特定任务
如何擴展編輯器功能
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
使用范例
C++
C#
UnigineScript
统一的Unigine着色器语言 UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
材质和着色器
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
Animations-Related Classes
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
VR-Related Classes
创建内容
内容优化
材质
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
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作为其第一个参数并实现所需的操作。然后订阅Enter和/或Leave事件并调用connect()

源代码 (C++)
// subscribe to Enter event when a body enters the physical trigger with your handler
physicalTrigger->getEventEnter().connect(enter_event_handler);
// subscribe to Leave event when a body leaves the physical trigger with your handler
physicalTrigger->getEventLeave().connect(leave_event_handler);
源代码 (C#)
// subscribe to Enter event when a body enters the physical trigger with your handler
physicalTrigger.EventEnter.Connect(enter_event_handler);
// subscribe to Leave event when a body leaves the physical trigger with your handler
physicalTrigger.EventLeave.Connect(leave_event_handler);
最新更新: 2024-04-19
Build: ()