我试图在应该在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/