我遇到一个问题,即在调用CharacterController.SimpleMove()后,主摄像头位置没有变化。任务是创建摄像机移动的场景。
我有Main Camera游戏对象,附有角色控制器和脚本。
问题是在调用SimpleMove()之后,vrCamera位置没有任何变化。
我的问题是这段代码有什么问题。我建议在MainCamera对象和CharacterController组件之间绑定有问题,但是我花了很多时间调查并且找不到任何工作。
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);
}
}
}
答案 0 :(得分:2)
您无法移动VR相机,而是确定 mainCamera 位置的SDK。
要移动相机,您只需将GameObject
作为mainCamera
的父级,然后移动父级GameObject
答案 1 :(得分:1)
试试这个。您的TransformDirection可能返回错误的向量。
Vector3 forward = vrCamera.transform.forward;
cc.SimpleMove(forward * speed);