Unity3D CharacterController运动问题。相机位置未更改

时间:2018-02-13 10:21:54

标签: c# unity3d virtual-reality

我遇到一个问题,即在调用CharacterController.SimpleMove()后,主摄像头位置没有变化。任务是创建摄像机移动的场景。 我有Main Camera游戏对象,附有角色控制器和脚本。 问题是在调用SimpleMove()之后,vrCamera位置没有任何变化。
我的问题是这段代码有什么问题。我建议在MainCamera对象和CharacterController组件之间绑定有问题,但是我花了很多时间调查并且找不到任何工作。

enter image description here

using UnityEngine;

[RequireComponent(typeof(CharacterController))]
public class VRLookWalk : MonoBehaviour {

    public Transform vrCamera;

    public float toggleAngle = 30.0f;
    public float speed = 3.0f;
    public bool moveForwad;
    private CharacterController cc;

  // Use this for initialization
  void Start () {
        cc = vrCamera.GetComponent<CharacterController>();
  }

  // Update is called once per frame
  void Update () {
        if (vrCamera.eulerAngles.x >= toggleAngle && vrCamera.eulerAngles.x < 90.0f)
        {
            Vector3 forward = vrCamera.TransformDirection(Vector3.forward);
            cc.SimpleMove(forward * speed);
        }
    }
}

2 个答案:

答案 0 :(得分:2)

您无法移动VR相机,而是确定 mainCamera 位置的SDK。

要移动相机,您只需将GameObject作为mainCamera的父级,然后移动父级GameObject

答案 1 :(得分:1)

试试这个。您的TransformDirection可能返回错误的向量。

Vector3 forward = vrCamera.transform.forward;
cc.SimpleMove(forward * speed);