跳到主要内容

其他常用方法

包括了平滑插值、随机、打印输出以及类型转化等逻辑函数,是项目交互制作过程中所必须掌握的基础模块;

平滑插值

SmoothStep

平滑插值:作用都是按照百分比取得从一个值过度到另外一个值的中间值。IdeaXR里面的平滑插值节点,如下图所示。

smoothstep

随机

Rand

随机:产生随机数有多种不同的方法。这些方法被称为随机数发生器。随机数最重要的特性是:它所产生的后面的那个数与前面的那个数毫无关系。

在实际应用中往往使用伪随机数就足够了。这些数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。计算机或计算器产生的随机数有很长的周期性。它们不真正地随机,因为它们实际上是可以计算出来的,但是它们具有类似于随机数的统计特征。这样的发生器叫做伪随机数发生器。

IdeaXR里面的随机节点,如下图所示。

rand_range

Randi():在[0,2^32-1]之间生成一个随机整数;

Randf():在[0,1]之间生成一个随机浮点数;

Randomize():为生成器设置基于时间的种子;

RandSeed():会改变随机生成器的种子。传入的数值用于指定随机数生成时所用算法开始时所选定的整数值,如果使用相同的seed()值,则每次生成的随机数都相同。如果不设置这个值,则系统会根据时间来自己选择这个值,此时每次生成的随机数会因时间的差异而有所不同。

RandRange(float from, float to):在给定的范围内随机生成一个浮点数;

打印输出

Print

print

Print Tree:将树打印到标准输出。主要用于调试。这个版本显示相对于当前节点的路径,适合复制/粘贴到get_node函数中。

Print Tree Pretty:类似于print_tree,它将树打印到标准输出。这个版本显示更多的图形,类似于在场景检查器中显示的内容。它对于检查较大的树很有用。

Print Stray Nodes:打印所有散在节点(SceneTree之外的节点)。用于调试。只能在调试版本中工作。

Print:将一个或多个任意类型的参数转换为字符串,并将其打印到控制台。

Print String:将将一个或多个参数作为字符串输出到控制台。

Printerr:将一个或多个参数作为字符串输出到标准错误行。

Printraw:将一个或多个参数作为字符串输出到控制台。末尾没有添加换行符。

类型转化

Constract用于变量的类型转化,TypeCast用于获取节点的类型转化(用于调用节点上的方法)

Construct

变量是用来存储值的所在处;它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中,在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据。但是在使用过程中很多时候需要将数据类型进行转换,来适应不同的使用场景。

在IdeaXR的可视化交互编辑器中也是存在类型转换的相关节点。在可视化交互编辑器中点击鼠标右键查找Construct即可找到各种类型转换。如下图所示。

convert_type

常用的类型转换节点有字符串转浮点型、整型转浮点型、字符串转布尔型、布尔型转整型、浮点型转布尔型等。还有很多的类型转换就不在这里一一介绍了,如果需要使用请自行查找。

字符串转浮点型

string_construct_float

整型转浮点型

int_construct_float

字符串转布尔型

string_construct_boolen

布尔型转整型

boolen_construct_int

浮点型转布尔型

float_construct_boolen

TypeCast

在项目制作的过程中,经常需要在场景运行时动态获取某个节点的属性或方法,一般是无法直接获取到特定节点的属性和方法。这时,通过TypeCast方便用户在场景运行时动态的获取到某个节点特定的属性和方法。

下面我们可以通过运行时动态获取刚体的具体属性的小例子来学习TypeCast的使用方法(此案例需要用到VR手柄触发器,请先在资源商城下载VR插件):

第1步,按下键盘上的Ctrl键,选中手柄射线触发器右下角的拾取对象按住鼠标左键拖动,当释放键盘上的Ctrl键和鼠标左键时,在弹出的搜索可视化节点对话框中可以非常清楚的看到,在场景运行时可以动态获取到的只有场景中的对象节点,无法在运行时直接获取到刚体节点的具体属性或专有方法;

third_step

第2步,在可视化编辑器中,我们可以通过右键空白处,在弹出搜索可视化节点的搜索框内输入TypeCast关键字,选中搜索结果中的TypeCast节点,点击打开按钮即可;

four_step

第3步,创建TypeCast节点成功,选中可视化流程设计工作区内的TypeCast节点,在最右侧的属性中选择基础类型节点;

property

第4步,在弹出来的新建Object对话框中我们可以选择场景中的任一节点。这里以获取刚体节点为例,输入RigidBody关键字,在搜索出来的结果中选择刚体(RigidBody)节点后都单击页面下方的新建按钮即可;

assign_rigidbody

指定完成后的效果如图所示:

assign_finish

第5步,按下键盘上的Ctrl键,选中TypeCast节点右下角的 [obj]instance 按住鼠标左键拖动,当释放键盘上的Ctrl键和鼠标左键时,在弹出的搜索可视化节点对话框中可以非常清楚的看到,在场景运行时可以动态获取到的获取到刚体节点的具体属性或专有方法;

result