Unity新手干货之移动篇(三)虚拟现实XR移动

本文是Unity新手系列的XR移动篇,主要讲解如何在虚拟现实中使用摇杆进行移动。通过导入XR包,设置项目参数,并编写代码实现基于摇杆的Vector2值移动。内容涵盖XR包导入、项目设置调整以及摇杆移动的代码实现。
摘要由CSDN通过智能技术生成

目录

开篇介绍 

导入XR包和设置 

代码 


开篇介绍 

同期视频

XR我们用Pico来举例,在XR中或者说是虚拟现实中官方喜欢用的射线传送,这个我们以后再讲,今天要介绍的是X-Box类似的摇杆移动

VR(XR=VR+AR)中要实现与我们平时玩的电脑游戏或手机游戏一样的流畅移动,可以选择的按键也就只有摇杆,也就是我上图圈出来的,这是一个Vector2值,分为x和y,且范围在[-1,1]

导入XR包和设置 

之后我们就开始先导入XR包,Window→Package Manager→Packages: Unity Registry
→然后我们搜索一下xr→把最后两个下载导入一下,如图

这两个XR方向的内容我们以后讲,可以先……一手

接着我们Edit→Project Settings→Player→Other Settings,我们最好调一下,如图

第一个是安卓版本要高于10以上,不然不运行

第二个是为了接受更多的API

最后一个是为了新老Input兼容

一下子讲太多无法理解,所以可以先……一手

代码 

最后我们写代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR;//一定要加

public class Player : MonoBehaviour
{
    Quaternion my_head;//头朝方向,也就是移动方向
    void Start()
    {
        
    }

    void Update()
    {
        XR_Move();
    }

    public float speed=5;
    public CharacterController character;
    
    InputDevice handR;//右手
    void XR_Move()
    {
        my_head = Quaternion.Euler(0, Camera.main.transform.eulerAngles.y, 0);
        handR = InputDevices.GetDeviceAtXRNode(XRNode.RightHand);//赋值
        handR.TryGetFeatureValue(CommonUsages.primary2DAxis, out Vector2 vector);//虚拟现实中移动方式为摇杆,是一个Vector2的数值,x和y都是[-1,1]
        Vector3 dirction = my_head * new Vector3(vector.x, 0, vector.y);//在三维中这里的vector.y其实是z
        //transform.position += dirction*Time.deltaTime*speed;//和上一期一样
        character.SimpleMove(dirction * speed);        
    }
}

注:primary2DAxis也就是摇杆的值,在三维中,二维的y也就是z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强迫症患者泷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值