提示:选中右侧目录,可快速找到所需内容
本系列博客地址:传送门
前言:
测试时发现该SDK在有的电脑能实现传送,有的射线都不显示(去官网下载了最老版本的SDK,遇到同样问题)。
因此让同事导了一份SDK,测试可以使用。
下载地址:链接
移动方式:
1、射线自由传送:左手柄摇杆向前推,发射射线传送。右手柄摇杆控制左右转向。
2、射线传送到指定点:右手A键,按下发射射线,只有接触到设置好的点,才能传送到该点。
3、步行:左手柄摇杆任何方向推,控制人物向任何方向移动。右手柄摇杆控制左右转向。
4、眼睛传送:按下A键,眼前出现射线,该射线跟随你的头转动(下图所示,感觉不是很好用的样子,所以有需要告诉我,再研究一下)
实现目标划分:
1、出现手
2、出现手柄
3、出现射线,实现传送
a、新场景,添加 Locomotion 场景的 PlayerController。
该物体,实现了手、眼睛的效果。且只有当戴上头盔、拿着手柄时,程序才会运行,手和头的mesh才会打开。
b、PlayerController——LocomotionController物体:
启用 TeleportTargetHandlerPhysical ,关闭TeleportTargetHandlerNode、TeleportTargetHandlerNavMesh
注:下方脚本比较奇葩的是,这些方法有时能实现效果,有时不行。因此建议最先根据上方方法配置好,不要代码切换了(下同)。
b、添加SampleSupport物体,执行:SampleSupport——LocomotionSampleSupport脚本——SetupNodeTeleport()方法(与上方法b二选一即可)。
a、新场景,添加 Locomotion 场景的 PlayerController。
b、PlayerController——LocomotionController物体:
启用 TeleportTargetHandlerNode ,关闭TeleportTargetHandlerPhysical、TeleportTargetHandlerNavMesh。
SetupNodeTeleport
b、添加SampleSupport物体,执行:SampleSupport——LocomotionSampleSupport脚本——SetupWalkOnly()方法
c、添加传送点。
该传送点可用TeleportPoint预制体。你可以发现该传送点的 layer 和 TeleportTargetHandlerNode 指定的层一样。
a、新场景,添加 Locomotion 场景的 PlayerController。
b、直接关掉 LocomotionController 、SampleSupport 物体。
b、添加SampleSupport物体,执行:SampleSupport——LocomotionSampleSupport脚本——SetupWalkOnly()方法
1、改变射线传送,下方所示指示:
PlayerController——LocomotionController物体——LocomotionTeleport脚本——TeleportDestinationPrefab,修改该预制件即可。
2、切换直线传送/贝瑟尔曲线传送
PlayerController——LocomotionController物体:
TeleportAimHandlerLaser:直线传送
TeleportAimHandlerParabolic:贝瑟尔曲线传送
3、开启关闭传送
PlayerController——LocomotionController物体,TeleportInputHandlerAvatarTouch的开关控制传送开关。(该脚本是传送处理程序)
(TeleportAimHandlerLaser是眼睛传送的开关)
4、传送时效果:
PlayerController——LocomotionController物体:
立刻传送:TeleportTransitionInstant
淡入淡出:TeleportTransitionBlink
不断移动到目标点:TeleportTransitionWarp
5、控制行走速度
PlayerController物体——OVRPlayerController脚本——Acceleration加速度属性。