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

简介: 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();
    }
}

相关文章
XR Interaction Toolkit教程⭐三、实现抓取和交互功能
XR Interaction Toolkit教程⭐三、实现抓取和交互功能
|
3月前
|
API 图形学
Unity精华☀️Audio Mixer终极教程:用《双人成行》讲解它的用途
Unity精华☀️Audio Mixer终极教程:用《双人成行》讲解它的用途
|
3月前
|
编解码 前端开发
XR Interaction Toolkit教程⭐四、实现与UI交互
XR Interaction Toolkit教程⭐四、实现与UI交互
|
3月前
|
开发工具 vr&ar 图形学
XR Interaction Toolkit教程⭐一、简介、安装和基本配置
XR Interaction Toolkit教程⭐一、简介、安装和基本配置
|
3月前
|
API 开发工具 图形学
Pico Neo 3教程☀️ 六、项目的配置总结及交互开发
Pico Neo 3教程☀️ 六、项目的配置总结及交互开发
|
存储 监控 程序员
【教程&工具】微信同步文章到Bear
【教程&工具】微信同步文章到Bear