
在层级面板右键,选择XR-Locomotion System,将物体添加到场景。 该物体上配置了多个脚本,是负责移动的物体。

如下图所示,添加 ContinuousMoveProvider(Device-based) 完成配置。
建议:右手摇杆转身,左手摇杆位移。
想实现右手转身,那么便添加右手即可。

如下图所示,添加 ContinuousMoveProvider(Action-based) 完成配置。
建议:右手摇杆转身,左手摇杆位移。
想实现右手转身,那么便只勾选右手的UseReference即可。

给 Locomotion System 添加 ContinuousMoveProvider (Device-based) 组件。
若你只想左手移动,那么便只添加左手即可。

给 Locomotion System 添加 ContinuousMoveProvider (Action-based) 组件。
若你只想左手移动,那么便只勾选左手的 UseReference 即可。

给地面添加 TeleportationArea 组件,这样才能在地面上使用传送。
现在按 侧键 是传送操作。
完成第1步,我们已经能实现传送了。 现在我们想给射线添加一个指示器该怎样做呢?
找一个指示器素材,删除 Collider,将其添加到我们传送的手柄上即可。




该组件的作用是:它可根据头显的位置,动态的去调整CharacterController的高度和中心点。
但测试发现,它只在手柄移动和传送时有效果。单单我们戴着头显(XR Origin)移动并不行。 我们需要新建一个脚本,继承CharacterControllerDriver ,替换掉原有的CharacterControllerDriver。
using UnityEngine.XR.Interaction.Toolkit;
public class MyCharacterControllerDriver : CharacterControllerDriver
{
void Update()
{
UpdateCharacterController();
}
}
大家还有什么问题,欢迎在下方留言!