Sdk 演示场景中没有头部跟踪
我已经下载了sdk并尝试加载演示场景,但在导出apk时没有头部跟踪,有什么建议吗 在安装apk时,我看到了立体场景,立方体正在旋转,但没有头部跟踪。我可以打开和关闭失真,但还没有找到可以启用头部跟踪的位置Sdk 演示场景中没有头部跟踪,sdk,tracking,head,virtual-reality,vrone,Sdk,Tracking,Head,Virtual Reality,Vrone,我已经下载了sdk并尝试加载演示场景,但在导出apk时没有头部跟踪,有什么建议吗 在安装apk时,我看到了立体场景,立方体正在旋转,但没有头部跟踪。我可以打开和关闭失真,但还没有找到可以启用头部跟踪的位置 任何帮助都将不胜感激。这里也一样:我看到演示场景在网格背景上旋转立方体,左/右分屏中有三个光源,但没有头部跟踪。也没有预失真。 这是安装在三星Galaxy S3安卓4.3和Unity 4.5.3f3上的。1。使用以下内容在Unity3D中创建新的c脚本: using UnityEngine;
任何帮助都将不胜感激。这里也一样:我看到演示场景在网格背景上旋转立方体,左/右分屏中有三个光源,但没有头部跟踪。也没有预失真。
这是安装在三星Galaxy S3安卓4.3和Unity 4.5.3f3上的。1。使用以下内容在Unity3D中创建新的c脚本:
using UnityEngine;
using System.Collections;
public class VROneRotateAround : MonoBehaviour {
public Transform target;
public float distance = 5f;
public Vector3 offset = Vector3.zero;
public bool useAngleX = true;
public bool useAngleY = true;
public bool useAngleZ = true;
public bool useRealHorizontalAngle = true;
public bool resetViewOnTouch = true;
private Quaternion initialRotation = Quaternion.identity;
private Quaternion currentRotation;
private static Vector3 gyroAngles; // original angles from gyro
private static Vector3 usedAngles; // converted into unity world coordinates
private int userSleepTimeOut; // original device SleepTimeOut setting
private bool gyroAvail = false;
void Start() {
Input.compensateSensors = true;
transform.position = (target.position + offset) - transform.forward * distance;
}
void FixedUpdate() {
if (gyroAvail == false) {
if (Input.gyro.attitude.eulerAngles != Vector3.zero && Time.frameCount > 30) {
gyroAvail = true;
initialRotation = Input.gyro.attitude;
target.gameObject.SendMessage("StartFlight");
}
return; // early out
}
// reset origin on touch or not yet set origin
if(resetViewOnTouch && (Input.touchCount > 0))
initialRotation = Input.gyro.attitude;
// new rotation
currentRotation = Quaternion.Inverse(initialRotation)*Input.gyro.attitude;
gyroAngles = currentRotation.eulerAngles;
//usedAngles = Quaternion.Inverse (currentRotation).eulerAngles;
usedAngles = gyroAngles;
// reset single angle values
if (useAngleX == false)
usedAngles.x = 0f;
if (useAngleY == false)
usedAngles.y = 0f;
if (useAngleZ == false)
usedAngles.z = 0f;
if (useRealHorizontalAngle)
usedAngles.y *= -1;
transform.localRotation = Quaternion.Euler (new Vector3(-usedAngles.x, usedAngles.y, usedAngles.z));
transform.position = (target.position + offset) - transform.forward * distance;
}
public static Vector3 GetUsedAngles() {
return usedAngles;
}
public static Vector3 GetGyroAngles() {
return gyroAngles;
}
public void ResetView() {
initialRotation = Input.gyro.attitude;
}
void OnEnable() {
// sensor on
Input.gyro.enabled = true;
initialRotation = Quaternion.identity;
gyroAvail = false;
// store device sleep timeout setting
userSleepTimeOut = Screen.sleepTimeout;
// disable sleep timeout when app is running
Screen.sleepTimeout = SleepTimeout.NeverSleep;
}
void OnDisable() {
// restore original sleep timeout
Screen.sleepTimeout = userSleepTimeOut;
//sensor off
Input.gyro.enabled = false;
}
}
打开演示场景并将此脚本附加到VROneSDK预置
在属性编辑器中,选择立方体作为目标,并输入6作为距离
构建应用程序并在设备上进行测试,或者使用UnityRemote在编辑器中测试其行为。SDK似乎只在受支持的设备上运行,您需要使用S5才能使其正常工作。您还需要获得Unity的Android Pro插件。
事实上,我们确实进行了distotion,但屏幕两边都被裁剪了10像素。那不可能是对的 使用提问按钮Tanks,除了上面的一个步骤外,我已经完成了所有步骤,我不太确定如何执行以下操作:在属性编辑器中选择立方体作为目标,输入6作为距离。您能告诉我如何选择立方体作为目标吗?这是在您发布的脚本中完成的吗?上述脚本中的第一个公共参数名为target。然后,将脚本附加到VROneSDK预置时,将任何对象从unity场景拖动到属性编辑器中的该字段中。目标将是摄像机旋转的游戏对象。