1

UnityのCardboardMainがVRの中心点が指している方向にゆっくりとドリフトするようにしようとしています。私はスクリプトを持っています:

using UnityEngine;
using System.Collections;

public class Move : MonoBehaviour {
    public float balloon_speed = 0.0001f;
    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        //float rotLeftRight = Input.GetAxis ("Mouse X");
        //transform.Rotate (0, rotLeftRight, 0);
        Vector3 direction = new Vector3(0,0,balloon_speed);
        direction = transform.rotation * direction;
        transform.localPosition += direction;
    }
}

行の場合

//float rotLeftRight = Input.GetAxis ("Mouse X");
//transform.Rotate (0, rotLeftRight, 0); 

コメントを外すと、スクリプトは Unity で完全に機能します。Androidデバイスにロードすると、カメラが前方にドリフトし、方向が変わりません。これは、VR 座標が transform.rotaion が返すものと異なるためだと思います。何かアドバイス?

4

1 に答える 1

1

私はこれを試してみます:

void Update() {
    transform.localPosition += balloon_speed * Vector3.forward;
}

あなたのスクリプトでは、ワールド座標ベクトル (回転 * 方向) をローカル座標位置に追加していたと思います。

于 2015-01-04T04:57:45.003 に答える