Unity3d的Google VR SDK制作了“物体轨道”而不是“相机轨道”?

时间:2017-02-03 02:56:24

标签: unity3d rotation head gameobject google-vr

这里有没有人知道如何重新创建"对象轨道"官方Google图库演示使用的效果(在Unity SDK中,您的焦点在于固定点,而您的焦点在于移动头部时固定点的相机轨道)? 以下是已编写的代码

using System.Collections;

using UnityEngine;

public class CameraOrbit : MonoBehaviour {

    public float distance = 3;
    private GvrHead head;

    void Start() {
        head = Camera.main.GetComponent<StereoController>().Head;
    }

    void Update () {
        transform.position = head.transform.position + (head.Gaze.direction * distance);
    }
}

虽然上面的代码在我使用内置的游戏对象(例如unity3d中的球体)进行测试时成功实现,但是当我在自己创建的游戏对象中测试它时失败了。我自己的游戏对象是使用代码创建的,并将代码放在一个空的游戏对象中。在层次结构中创建。为简单起见,我尝试了一个简单的原始圆柱体(我自己的编码游戏对象比这复杂得多)

void Update() {
    GameObject Cylinder = GameObject.CreatePrimitive (PrimitiveType.Cylinder);

    Cylinder.transform.position =
        new Vector3 (transform.position.x, transform.position.y, transform.position.z);
}

当我转动相机时,物体真的在旋转,它会不停地发送新的旋转气缸。唯一的问题在于前一个未被破坏的游戏对象。我在想几个解决方案:

  1. 创建一个脚本,当相机转动时,前一个游戏对象将被销毁
  2. 有没有办法让我们的脚本对象成为可以在层次结构中调用的游戏对象?
  3. 因为我是Unity3D的新手。也许我的方式是将一个脚本放在一个空的Gameobject&#34;创建我自己的游戏对象是荒谬的。
  4. 任何建议都表示赞赏!

0 个答案:

没有答案