gpt4 book ai didi

c# - 将对象 "fixed"保持在镜头前(Google Cardboard + Unity)

转载 作者:太空狗 更新时间:2023-10-30 01:16:44 24 4
gpt4 key购买 nike

我是 Unity(和 VR)的新手,我正在尝试在 Google Cardboard 中设置一个小示例,其中我有一个模型会在用户转动头部时转动 - 类似于 Google Cardboard 应用程序中的面具演示。所以当用户向上看时,模型向上旋转,当向左看时,模型向左旋转等。

我的场景目前有一个 CardboardMain 和我的 3D 模型。我已将 Cardboard Head 脚本附加到我的模型,现在它可以随着头部运动正确旋转。缺少的是让物体保持在镜头前。

为了实现该功能,我创建了一个附加到我的 3D 模型的脚本。脚本如下所示:

using UnityEngine;
using System.Collections;

public class lookAtMe : MonoBehaviour {

private CardboardHead head;

private Vector3 offset;
public GameObject scrimshaw;

// Use this for initialization
void Start () {
head = Camera.main.GetComponent<StereoController>().Head;
scrimshaw = GameObject.FindGameObjectWithTag ("Scrimshaw");
}

// Update at end of frame
void LateUpdate () {

// head.transform.position = the positon of the head on the plane
// head.Gaze.direction = positon of where the head is looking
offset = head.Gaze.direction + head.transform.position;

scrimshaw.transform.position = scrimshaw.transform.position + offset;
}
}

但是,我的模型的位置没有改变。我的印象是,如果我为 transform.position 提供一个新的向量 3,它会相应地移动对象。否则怎么办?

我确实尝试在 Main Camera 实例上应用 transform.LookAt (target),将目标设置为模型。虽然此方法确实有效,但使用起来有点生涩。

最佳答案

原来不需要脚本。实现该功能的必要步骤是从CardboardMainHead 子项中禁用Track RotationTrack Position ,这可以在编辑器中完成。如果不跟踪,相机将保持静止。

但是由于 CardboardHead 脚本应用于对象本身,所有实际的跟踪转换都直接应用于该对象。

关于c# - 将对象 "fixed"保持在镜头前(Google Cardboard + Unity),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34273887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com