七、pico+unity3d移动和转向

在 XR Interaction Toolkit 中,有一个 Locomotion System、添加后悔有自带的三个脚本,其中Snap Turn Provider就是瞬间转向、

在这里插入图片描述

持续转向和持续移动

在这里插入图片描述
持续转向和瞬间转向的按键参考是一样的,有手柄的遥感绑定的snap turn
持续移动绑定的是左手柄的 move移动

注:只要有 Locomotion System 和 Snap Turn Provider
这两个脚本就能实现瞬间转向,脚本挂载在任意游戏物体上都是可以的。

因为 XR Origin 这个游戏物体代表了 VR 中的玩家自己,所以我们要在这个物体上添加 Character Controller 组件,然后调整一下 Center Y 和 Radius 的值

在 Locomotion System 游戏物体上添加下面脚本
玩家的模型部分加上碰撞器 Character Controller Driver(原生的碰撞器Character Controller不会根据头显位置变化高度)、把 Continuous Move Provider 这个脚本(本教程中是 Locomotion System 这个物体)拖到 Locomotion Provider 这个变量上:这种方式默认只有在移动的时候会检测高度并更新高度、所以需要新建一个脚本,继承他

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit;

/**
 * CustomCharacterControllerDriver 类,继承自 CharacterControllerDriver
 */
public class CustomCharacterControllerDriver : CharacterControllerDriver
{
    
    
    /**
     * 每帧更新时调用的方法
     */
    void Update()
    {
    
    
        // 调用自定义的更新角色控制器的方法
        UpdateCharacterController();       
    }
}

然后使用我们自己写的脚本进行控制,移除Character Controller 和Character Controller Driver

猜你喜欢

转载自blog.csdn.net/wangzhae/article/details/140483442