ジャイロ制御カメラのonButtonClickイベントを有効にしたいが、カメラの現在の位置から開始したい。現在のところ、ジャイロが有効になると、カメラを新しい位置(恐らく現在のジャイロの回転)に移動し、その位置からジャイロすることなくカメラを移動します。現在のデバイス方向でジャイロスコープカメラを有効にする方法
私は理にかなっていますが、基本的には、ゲームで見ているもの(つまり、ジャイロで制御されているカメラではなく、そのユーザーがその変更に気づくことはありません)ここで私が使用しているコードです:
void Update()
{
Quaternion attitudeFix = new Quaternion (-gyro.attitude.x, -gyro.attitude.z, -gyro.attitude.y, gyro.attitude.w);
Quaternion offsetRotation = initialGyroRotation * attitudeFix;
rotation = initialRotation * offsetRotation;
transform.rotation = rotation;
}
public void EnableGyro()
{
initialGyroRotation = Input.gyro.attitude;
initialRotation = transform.rotation;
Debug.Log("initialRotation: " + initialRotation.ToString());
Debug.Log("transform.rotation: " + transform.rotation.ToString());
Debug.Log("initialGyroRotation: " + initialGyroRotation.ToString());
}
**
EDIT:は、ここで私は、ユーザーが自分の顔の前で自分のデバイスを保持しているとビューは(見てみたい正確にどのようにの画面です肖像画)と北に向かう。アプリの起動時にデバイスの向きに関係なく、これは縦向きの携帯電話で北向きに表示されます(ユーザーが携帯電話を見ているとき)。
EDIT 2:私は戻って正確にあなたのソリューションを提案するどのようにコードを置くよう テストが混乱になりました。それでもやや問題はありますが、このスクリプトは非常に近いと思われます。主な問題は、私が各テストを実行したときに画面が上の写真のように見えないことです。デバイスを異常な角度で起動します。アプリの起動時にデバイスがどの角度になっているかは重要ではありません。北と肖像を指しているときは上記の画面のように見える必要があります。
私は、より多くのテストを行う必要があり、新しい/クリーンなプロジェクトでそれを行います。
ご協力いただきありがとうございます。あなたのコードは、まさにそれが想定していたものでした。これで作業ができました。もちろん、カメラ上にジャイロを実装し、別のゲームオブジェクトにコンパスをつけているときに他の問題が発生しました。 2軸(X/Z)でジャイロし、残りの1軸(Y)を行う別のゲームオブジェクトにコンパスを設置するカメラを設定することができると思ったら、あなたの考えを知りたいと思います。私は別の質問を開始する必要がありますか? – Valerie
これはまったく別の問題と質問です。これについて新しい質問を作成することができます。何を求めているのかを明確にし、試したことを提供してください。 – Programmer
ありがとうプログラマー、ここに私の新しい質問があります:https://stackoverflow.com/questions/46943868/gyroscope-with-compass-help-needed – Valerie