前言:大家都知道AR通过扫描识别图来显示3D效果,也可通过Vuforia扩展追踪来实现物体在空间中显示(效果不是很好),本文来实现一个AR和3D场景相结合产生的效果。具体可看效果:
准备资料:
AR使用的是插件Vuforia:下载地址:https://developer.vuforia.com/downloads/sdk
控制陀螺仪脚本:
using UnityEngine;
/// <summary>
/// Gyroscope controller that works with any device orientation.
/// </summary>
public class GyroController : MonoBehaviour
{
#region [Private fields]
private bool gyroEnabled = true;
private const float lowPassFilterFactor = 0.2f;
private readonly Quaternion baseIdentity = Quaternion.Euler(90, 0, 0);
private Quaternion cameraBase = Quaternion.identity;
private Quaternion calibration = Quaternion.identity;
private Quaternion baseOrientation = Quaternion.Euler(90, 0, 0);
private Quaternion baseOrientationRotationFix = Quaternion.identity;
private Quaternion referanceRotation = Quaternion.identity;
private bool debug = false;
#endregion
#region [Unity events]
protected void Start()
{
AttachGyro();
}
protected void Update()
{
if (!gyroEnabled)
return;
transform.rotation = Quaternion.Slerp(transform.rotation,
cameraBase * (ConvertRotation(referanceRotation * Input.gyro.attitude) * GetRotFix()), lowPassFilterFactor);
}
protec