实现3dof功能
1.前言
现实中手机移动,可以看到相应转动的虚拟画面,采用手机自带的惯导就可以实现,当然也可以借助手机ar的插件,比如arcore或者easyAR等。
2.代码实现
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GyroCameraController : MonoBehaviour
{
private Gyroscope gyro;
// 相机初始的态势
Quaternion cameraBase = Quaternion.Euler(90, 0, 0);
void Start()
{
// 从Input中获取陀螺仪对象
gyro = Input.gyro;
// 开启陀螺仪
gyro.enabled = true;
// 获取陀螺仪的态势数据
Debug.Log(gyro.attitude);
}
void Update()
{
transform.rotation = cameraBase * ConvertRotation(gyro.attitude);
}
// 将旋转从右手坐标系转换到左手坐标系
private static Quaternion ConvertRotation(Quaternion q)
{
return new Quaternion(q.x, q.y, -q.z, -q.w);
}
}