Node Reference(节点引用)
Node Reference(节点引用)是一类可调用磁盘上的外部.node文件的节点,它们是通过从虚拟世界导出节点这样的方式获得的。
如果要在虚拟世界中重复使用大量完全相同的对象,那就应该使用节点引用而不是节点。 假如您需要对所有这些对象做相同的更改,那通过节点引用的使用则可避免要手动编辑每一个完全相同的对象的尴尬。 可以简单添加多个指向同一.node文件的节点引用,然后只对其中一个进行编辑,这样就可实现对所有这些节点引用的更新。 这种方法可用来保持重复对象的完整性,特别是对于复杂和精细的重复对象尤为适用。
例如,如有所需,节点引用可用来添加须同时执行更新的完全相同的汽车,船舶或建筑物。
另请参阅#
- 通过UnigineScript脚本中的NodeReference类编辑节点引用
- 通过C++ API中的Unigine::NodeReference类编辑节点引用
- 可同时作用于多个节点引用Randomizer插件
创建节点引用#
在UnigineEditor中,可以用2种方法来创建节点引用:
- 添加新节点引用,这类引用节点需要调用外部.node文件。 对于这种情况,您首先需要将节点导出到.node文件中。
- 将节点连同呈现在节点层级列表中的它的所有子节点一并转换为节点引用。 对于这种情况,源节点会将自身类型更改为节点引用。
通过添加新节点引用来创建#
- 从虚拟世界导出节点。
在将要用作节点引用的节点导出到.node文件中前,您可能需要先将该节点的位置坐标重置为零,这是因为它是相对于坐标系的零点位置被保存的。
- 点击Import(导入) -> Node File Reference(节点文件的引用),在打开的文件对话框窗口中选择上一步导出的节点。
- 在虚拟世界中放置该节点引用。
您可以重复步骤2和3来添加所需数量的节点引用。 或者您也可以简单克隆已添加的节点引用,方法是:选择节点引用,按组合键Ctrl+D,然后在打开的对话框窗口中点击Yes(是)按钮即可。
通过转换已有节点来创建#
- 在Nodes(节点)面板的节点层级列表中选择节点(或是直接在场景中选择)。
- 在菜单栏上点击Edit(编辑) -> Convert into Node Reference(转换为节点引用)(或是按组合键Ctrl+Shift+G转换)。
- 指定节点引用所调用的那个.node文件的名称,并点击Ok(确定)按钮。
最终,源节点将会被转换为节点引用:
要被转换的源节点 |
转换完的节点 |
您也可以克隆转换完的节点来获得所需数量的节点引用。
要被转换的源节点 |
被分组在节点引用所调用的伪节点下的节点 |
编辑节点引用#
在Nodes(节点)面板的Reference(引用)标签页内,您可以更改源节点的存放路径,或是打开可用来编辑源节点的ReferenceNode Editor(引用节点编辑器):
Reference Editor(引用编辑器)#
UnigineEditor的一大特点是使用了特殊的引用节点编辑器(ReferenceNode Editor),它可用来编辑被节点引用所指向的源节点。 要编辑源节点,只需按如下步骤操作即可:
- 在Nodes(节点)面板中选择节点引用。
- 通过点击Reference(引用)标签页内的Edit(编辑)按钮打开ReferenceNode Editor(引用节点编辑器)。
ReferenceNode Editor(引用节点编辑器)处于编辑模式下的源节点
- 编辑源节点。 例如,您可以更改应用给它的材质:
应用了红色材质的节点引用更改了材质的节点引用
- 点击Apply(应用)按钮可保存对源节点所做的更改,或是点击Cancel changes(取消更改)按钮取消更改。 最终,场景节点的列表会再次出现在Nodes(节点)面板中。
删除节点引用#
您可以像删除任何其它节点那样来删除节点引用。