使用 Unity,CardboardHead 脚本被添加到主摄像头,可以很好地处理所有事情,但我需要能够按需“重新居中” View ,目前我看到的唯一选择是旋转整个场景这似乎是第一手可以解决的问题,但我在文档中找不到任何内容。
对于 Oculus Mobile SDK (GearVR),它将是 OVRCamera.ResetCameraPositionOrientation(Vector3.one, Vector3.zero, Vector3.up, Vector3.zero);尽管每次戴上观看器时他们都能很好地处理它,所以那里很少需要它。
最佳答案
CardboardHead 上有一个“目标”参数,可让您使用另一个游戏对象作为旋转引用。或者您可以使用虚拟父游戏对象。无论哪种方式,当您想要重新居中时,您可以设置此引用对象的旋转,以便 CardboardHead 现在指向前方。将此函数添加到 CardboardHead 上的脚本中(或将其添加到该脚本中):
public void Recenter() {
Transform reference = target != null ? target : transform.parent;
if (reference != null) {
reference.rotation = Quaternion.Inverse(transform.rotation) * reference.rotation;
// next line is optional -- try it with and without
reference.rotation = Quaternion.FromToRotation(reference.up, Vector3.up) * reference.rotation;
}
}
关于android - 在 Unity 上使用 Cardboard SDK 重新定位或重新定位 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27518458/