我试图在应该在Daydream View上运行的Unity VR应用程序中使用LookToWalk脚本。在“游戏”模式下预览更改,一切按预期进行(我将脚本配置为一旦用户摄像头朝下30.0度或更高时运行forward
但是,当我尝试构建Daydream应用并将其安装在我的Google Pixel上时,CharacterController.SimpleMove似乎不再起作用。
日志显示30.0度的东西已按预期触发,但在白日梦中没有看到动静。

你知道为什么会这样吗?它运行在“仿真器”而不是“真实”设备上似乎真的很奇怪。

using UnityEngine;
using System.Collections;

public class GVRLookWalk : MonoBehaviour {
  public Transform vrCamera;
  public float toggleAngle = 30.0f;
  public float speed = 3.0f;
  private bool shouldWalk;
  private CharacterController cc;

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

  // Update is called once per frame
  void Update () {
    if (vrCamera.eulerAngles.x >= toggleAngle && vrCamera.eulerAngles.x < 90.0f){
        shouldWalk = true;
    } else {
        shouldWalk = false;
    }

    if (shouldWalk) {
        Vector3 forward = vrCamera.TransformDirection (Vector3.forward);
        cc.SimpleMove (forward * speed);
  }
}

最佳答案

相机是另一种转变的产物吗?您无法直接移动相机。 “您不能直接在Unity中移动相机。相反,相机必须是另一个GameObject的子代,并且位置和旋转的更改必须应用于父代的Transform。”
https://unity3d.com/learn/tutorials/topics/virtual-reality/movement-vr

关于android - CharacterController.SimpleMove在Daydream View 上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41100946/

10-11 00:12