World Expression
World Expression是一个点对象,它在指定范围内执行任意表达式(脚本)距离并在一组帧率。默认情况下,表达式以与主应用程序相同的帧速率执行。
通过使用World Expression,可以将脚本附加到场景中的对象。为此,必须将此类对象作为子节点添加到World Expression。子节点继承World Expression节点的转换(如果有)。
如果存在嵌套的World Expression节点,则层次结构中最后一个World Expression的子节点将继承所有父World Expression节点的转换。
例如,通过使用World Expression,您可以变换场景中的对象,按一定距离打开和关闭声音,打开和关闭NPC行为,将对象附加到相机(例如,相机上的雨滴)等等。 。
也可以看看#
- 通过API管理World Expression的WorldExpression类
- 教程开将脚本添加到项目
-
位于<UnigineSDK>/data/samples/worlds/文件夹中的样本集:
- expression_00 — expression_05
创造世界表达#
要通过UnigineEditor创建World Expression,请执行以下操作:
-
在菜单栏,单击Create -> Logic -> Expression。
- 将World Expression放置在世界上的某个地方。
附加世界表达脚本#
有两种方法可以通过UnigineEditor附加World Expression脚本:
-
直接在UnigineEditor中Parameters窗口中World Expression部分的Source字段中。源代码必须在花括号{}内,因为它们定义了World Expression范围。
-
作为脚本文件附加在World Expression部分的File字段中。脚本文件应使用花括号{}包含在Source字段的World Expression范围内:
在这种情况下,my_expression.h文件应包含以下代码:
log.message("WorldExpression is updated\n");
在脚本文件中,不得将源代码包装在花括号{}中。
实施脚本#
脚本本身可以实现为简单的函数调用序列,也可以实现为一组函数和类。查看范例这里。
脚本间通信#
这样的脚本可以与世界脚本交流通过相应的engine.world类函数或通过回调使用World Trigger(请参见列出的示例)以上)。
脚本功能#
除了UnigineScript库的函数外,在World Expression脚本中还提供了一组内部函数。可以找到带有说明和示例的此类功能的列表这里。
设置世界表情参数#
您可以在Node选项卡中调整以下World Expression参数:
Update Distance Limit | 距相机的距离,在该距离内执行表达式。 |
---|---|
IFps | 用于执行表达式的恒定帧持续时间(反向FPS,1 / FPS)。如果设置为0,则以与主应用程序相同的帧速率执行表达式。 |
File |
要执行的带有World Expression脚本的文件的路径。该路径是相对于data目录的。该文件应包含在Source字段的World Expression范围内。该字段是可选的,因为可以通过UnigineEditor接口直接实现World Expression脚本。 如果脚本文件已更改,则应通过UnigineEditor对其进行刷新:单击File字段右侧的。 |
Source |
World Expression脚本的源代码。该字段可以包含:
在这两种情况下,花括号{}必须将代码包装在字段中。 |