[转]XR Interaction Toolkit教程⭐二、实现移动、传送和人物的碰撞功能


🟥 配置 Locomotion System

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

  • LocomotionSystem:负责管理所有的移动效果
  • TeleportationProvider:负责传送
  • ActionBasedSnapTurnProvider:负责转身

在这里插入图片描述

 

🟧 实现转身效果

1️⃣ Device-based版

如下图所示,添加 ContinuousMoveProvider(Device-based) 完成配置。

建议:右手摇杆转身,左手摇杆位移。

想实现右手转身,那么便添加右手即可。

在这里插入图片描述


 

2️⃣ Action-based版

如下图所示,添加 ContinuousMoveProvider(Action-based) 完成配置。

建议:右手摇杆转身,左手摇杆位移。

想实现右手转身,那么便只勾选右手的UseReference即可。

在这里插入图片描述


 

🟨 实现摇杆移动

1️⃣ Device-based版

给 Locomotion System 添加 ContinuousMoveProvider (Device-based) 组件。

若你只想左手移动,那么便只添加左手即可。
在这里插入图片描述


 

2️⃣ Action-based版

给 Locomotion System 添加 ContinuousMoveProvider (Action-based) 组件。

若你只想左手移动,那么便只勾选左手的 UseReference 即可。

在这里插入图片描述


 

🟩 实现传送效果

1️⃣ 传送的基础条件

给地面添加 TeleportationArea 组件,这样才能在地面上使用传送。

现在按 侧键 是传送操作。

 

2️⃣ 如何制作一个射线指示器

完成第1步,我们已经能实现传送了。
现在我们想给射线添加一个指示器该怎样做呢?

找一个指示器素材,删除 Collider,将其添加到我们传送的手柄上即可。
在这里插入图片描述

在这里插入图片描述

 

3️⃣ 实现贝瑟尔曲线传送

在这里插入图片描述


 

🟦 实现人物碰撞效果

1️⃣ 添加相应的组件

  • 给 XR Origin 添加 CharacterController组件,并设置中心点和半径。
  • 添加 CharacterControllerDriver 组件:它可根据头显的位置,动态的去调整CharacterController的高度和中心点。

在这里插入图片描述

 

2️⃣ 修改 CharacterControllerDriver

该组件的作用是:它可根据头显的位置,动态的去调整CharacterController的高度和中心点。

但测试发现,它只在手柄移动和传送时有效果。单单我们戴着头显(XR Origin)移动并不行。


我们需要新建一个脚本,继承CharacterControllerDriver ,替换掉原有的CharacterControllerDriver。

using UnityEngine.XR.Interaction.Toolkit;

public class MyCharacterControllerDriver : CharacterControllerDriver
{
    void Update()
    {
        UpdateCharacterController();
    }
}

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值