まあ、私はちょうどそれを試してみました、それがうまく機能:
private void Start()
{
Input.gyro.enabled = true;
}
private void Update()
{
Vector3 previousEulerAngles = transform.eulerAngles;
Vector3 gyroInput = -Input.gyro.rotationRateUnbiased;
Vector3 targetEulerAngles = previousEulerAngles + gyroInput * Time.deltaTime * Mathf.Rad2Deg;
targetEulerAngles.x = 0.0f; // Only this line has been added
targetEulerAngles.z = 0.0f;
transform.eulerAngles = targetEulerAngles;
//You should also be able do it in one line if you want:
//transform.eulerAngles = new Vector3(0.0f, transform.eulerAngles.y - Input.gyro.rotationRateUnbiased.y * Time.deltaTime * Mathf.Rad2Deg, 0.0f);
}
あなたがする必要がある何がそれの子として中央がを変換(またはあなたのプレーヤーを使用)を作成し、親のあなたカメラをです。 カメラ距離、高さ、および角度を設定して、ビューを調整します。最後に上記のスクリプトをに変換:回転すると、カメラが円弧の周りを移動します。
EDIT:あなたの代わりにInput.gyro.attitude
を使用したい場合
private Vector3 startEulerAngles;
private Vector3 startGyroAttitudeToEuler;
private void Start()
{
Input.gyro.enabled = true;
startEulerAngles = transform.eulerAngles;
startGyroAttitudeToEuler = Input.gyro.attitude.eulerAngles;
}
private void Update()
{
Vector3 deltaEulerAngles = Input.gyro.attitude.eulerAngles - startGyroAttitudeToEuler;
deltaEulerAngles.x = 0.0f;
deltaEulerAngles.z = 0.0f;
transform.eulerAngles = startEulerAngles - deltaEulerAngles;
}
public void ResetGyro()
{
startGyroAttitudeToEuler = Input.gyro.attitude.eulerAngles;
}
EDIT 2従うとして、あなたはそれを行うことができます:私はあなたが探しているものを推測
をthisのようなものになります。下/上および左/右軸についてupVec.y
およびupVec.x
をチェックすることができます。
最初に空のゲームオブジェクトを作成し、これをジャイロスコープの回転を含むダミーとして使用し、スクリプトのphoneDummy
フィールドに設定します。
public Transform phoneDummy;
private void Start()
{
Input.gyro.enabled = true;
}
private void Update()
{
Vector3 gyroEuler = Input.gyro.attitude.eulerAngles;
phoneDummy.transform.eulerAngles = new Vector3(-1.0f * gyroEuler.x, -1.0f * gyroEuler.y, gyroEuler.z);
Vector3 upVec = phoneDummy.transform.InverseTransformDirection(-1f * Vector3.forward);
}
upVec.y
あなたピッチとupVec.x
があなたのロール軸になるだろう。 (軸の参考のためhereを確認してください)
しかしInput.gyro
から心の値に保つためには、はるかに完璧からです:あなたがより持続値(しかし、もちろんあまり正確なもの)を探しているなら、あなたはInput.compass.magneticHeading
を使用することをお勧めします。このことができます
希望、
の
可能な重複http://stackoverflow.com/questions/41818719/how([モバイルジャイロスコープの入力を使用して、カメラを回転させながら、私のカメラのZの回転をロックする方法]私が撮ったカメラの中で私が撮ったものをカメラで回転させながら撮ったもの) – Kardux
いいえ、それは私をあまり助けてくれませんでした。 –
たとえば、「オイラー角」を推定する必要はありませんが、変換された軸(現在の回転による)と地面などの角度を単純に推定できます。 https://upload.wikimedia.org/wikipedia/en/thumb/3/30/Plane_with_ENU_embedded_axes.svg/220px-Plane_with_ENU_embedded_axes.svg.png – minorlogic