【发布时间】:2018-02-13 10:21:54
【问题描述】:
我有一个问题,即在 CharacterController.SimpleMove() 调用后主摄像机位置没有改变。任务是创建相机移动的场景。
我有带有角色控制器和脚本的主相机游戏对象。
问题是调用 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);
}
}
}
【问题讨论】:
-
尝试将
vrCamera.eulerAngles.x打印到Update中的控制台,看看它的值是否确实在30到90之间。 -
我调试了脚本。 "if" 语句中的代码返回 true;行 cc.SimpleMove() 执行。
标签: c# unity3d virtual-reality