上一篇中说明了两种传送方法:基础传送和高度调整传送,这一篇中我们将继续讨论其他的传送方法。
地形传送
示例场景
010_CameraRig_TerrainTeleporting
这个场景展示了在使用到Terrain的项目中的传送功能,大体上与其他的传送相同。
实现方法
其他的设置采用高度调整传送中的设置,就可以实现在Terrain上的传送了,这里说明一下在该场景中使用到的另一种Pointer Renderer:Bezier Pointer Renderer。与之前使用的Straight
Pointer Renderer不同的是,在设置了Bezier Pointer Renderer后,我们按下按钮发射出的是一条贝塞尔曲线而不是直线,这更加方便我们到达高处。
首先将LeftController或者RightController中的VRTK_Straight
Pointer Renderer脚本更改为VRTK_Bezier Pointer Renderer。
然后将VRTK_Pointer中的Pointer Renderer的值设置为刚才添加的VRTK_Bezier
Pointer Renderer脚本
这样设置之后,我们就拥有了使用曲线传送的功能,可以在运行中尝试。
模型村庄传送
示例场景
027_CameraRig_TeleportByModelVillage
这种传送方式类似于小地图传送,首先放置几个模型用来代表场景中的几个标志地点,然后使用手柄去触摸模型并按下扳机键,就能够传送到目标地点。
实现方法
PlayArea设置采用高度调整传送中的设置,在LeftController或者RightController上绑定以下三个脚本:
然后在目标位置放置一个空物体
再在另一个地方放置一个用来代表该目标位置的模型。在这个模型上绑定以下脚本:
其中Destination属性设置为目标位置的空物体。
这样设置之后,我们就拥有了使用村庄模型传送的功能,可以在运行中尝试。