vison引擎中物理引擎触发体介绍

引言
物理触发体是一个区域,当物理玩家控制器等其他物理体进入该区域,即创建回调事件;例如,玩家可以进入触发体,激活门 / 平台 / UI 或其他效果。
 
使用自定义体积图形定义该区域,您可以自由定义自己的 Havok™ 物理触发器图形。 触发体可创建为任意多面几何体;并非仅限用于对象碰撞检测的标准立方体或球体。
 
如果已经在您的项目中使用物理系统,为碰撞触发器使用物理系统是合理的做法,因为其性能收益比其他触发器类型更高。 
 
创建触发体
要在 vForge 中创建基于物理的触发体,您首先必须创建一个自定义体对象。 请参见自定义体中对该操作的描述。

vison引擎中物理引擎触发体介绍

 
创建好对象后,从图形列表中选择自定义体积图形。

vison引擎中物理引擎触发体介绍

接下来,只需使用组件编辑器将 Havok™ 触发体组件附加到新建的自定义体积图形上即可。

vison引擎中物理引擎触发体介绍

   注:附加好 Havok™ 触发体组件后,您依然能够编辑自定义体对象;所附触发体会自动自我更新。
 
如何获取事件
在本章节,我们将了解获取触发事件的方法。 Havok™ 触发体组件呈现 4 种不同的源触发器,可将其链接到目标触发器。 其实现方法为 vForge 中的可视化 GUI 链接系统,或 C++。
 
每当触发一个事件(OnObjectEntered、OnObjectLeft……),Havok 触发体会通过一个 C++ 回调通知所有已链接的实体。 但如果被通知实体附有脚本组件,则该脚本也将被通知。
 
vForge 可视化链接
附加好 Havok™ 物理组件后,该图形即具有标准链接组件,可用于链接到其他触发图形接受器。 要看到连接,首先选择自定义体节点组的根目录。

vison引擎中物理引擎触发体介绍

vison引擎中物理引擎触发体介绍

    可用链接事件包括:
 
OnObjectEnter(对象进入)
OnObjectLeave(对象离开)
OnCharacterEnter(角色进入)
OnCharacterLeave(角色离开)
 
触发 Lua 事件函数
在已附加 Havok™ 触发体组件的自定义体积图形中附加一个 Lua 脚本组件。 然后,我们就能使用 Lua 触发函数回调来响应物理触发事件。
 
可用的 Lua 函数原型有 4 种:
 
   函数 OnObjectEnter(self,entity)
   函数 OnObjectLeave(self,entity)
   函数 OnCharacterEnter(self,entity)
   函数 OnCharacterLeave(self,entity)
参数 self 是自定义体对象,即 Havok™ 触发器组件所附对象。 参数 entity 是实体,该实体附带刚体(在使用 OnObjectEnter/ OnObjectLeave 的情况下)或角色控制器(在使用 OnCharacterEnter/ OnCharacterLeave 的情况下),由后者负责触发。

你可能感兴趣的:(ISO)