目录
开篇介绍
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