android - 在 Unity 上使用 Cardboard SDK 重新定位或重新定位 View

标签 android unity3d virtual-reality google-cardboard

使用 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/

相关文章:

Android,谷歌纸板运行时JNI失败

Android: java.lang.OutOfMemoryError: 线程创建失败

c# - 如何在 C# 中为 DateTime 创建自定义年份

unity3d - 向 TextMeshPro 文本添加轮廓

nhibernate - Unity3D + NHibernate,崩溃加载 "Unity 3.5 .net full Base Class Libraries"

android - 在 Unity 中检测 Oculus Quest 1 和 2 耳机

android - 使用两个 Linkify 和可点击的网络链接的一个 TextView 的文本颜色

android - 如何在SQLite android数据库中搜索特定ID并返回其对象

android - 尝试在空对象引用上调用接口(interface)方法 'void android.view.inputmethod.InputConnection.closeConnection()'

c# - 眼珠Go : Picking up/Moving object