2016-03-21 30 views
1

いくつかのUpdate()メソッドでCardboard.SDK.Tiltedフラグに応答するアプリケーションを作成しようとしています。Google Cardboard Unity SDK傾けられたデバイスでは動作しません

Unity Playerで実行している場合、Escボタンを押すと、Cardboard.SDK.Tiltedがtrueに設定されます。 しかし、Android用のアプリをビルドすると、デバイスを傾けてもCardboard.SDK.Tiltedはfalseのままです。チルトアクションのある他のVRアプリは私の携帯電話で正常に動作します。この仕事をするためにAndroid用にビルドする前に有効にしなければならないオプションがありますか?

私はユニティv5.3.3f1と段ボールSDKのv0.6を使用しています、私が試した上でデバイスがのXperia Z2、サムスンギャラクシーS3とiPhoneです6.

はEDIT: だから、私は」 (両方の更新にこのコードを置く試みVE)とLateUpdate()メソッド:画面が傾いている場合

if (Cardboard.SDK.Tilted) { 
      print("tilted, next scene"); 
      NextScene(); 
} 

、新しいシーンがロードされなければなりません。 しかし、私が言ったように、Unity PlayerではEscボタンを押してチルトをトリガするだけで動作し、実際のデバイスでは何も起こらず、Cardboard.SDK.Tilted変数は決してtrueに設定されません。

https://recordnotfound.com/cardboard-unity-googlesamples-6780/issuesで、v0.6でTiltの中断が問題になっていることがわかりました。これはもはやサポートされていない可能性がありますか?しかしUnity Playerでは動作しますが、実際のデバイスでは動作しないのは奇妙です。

答えて

1

私は、Cardboard.SDK.Tiltedフラグが以前のバージョンのSDKのように動作していないことを確認できます。エスケープボタンはデバッガでトリガしますが、チルト動作ではビルドでトリガされません。

しかし、あなたはInput.accelerationで非常に単純に相当するものを実装することができます。

float angle = 80.0f/360.0f * 2.0f * Mathf.PI; 
bool isTilted = Mathf.Abs(Input.acceleration.normalized.x) > Mathf.Sin(angle); 
if (Cardboard.SDK.Tilted || isTilted) 
{ 
    //Action here 
} 

を、デバイスの加速度が重力に完全に起因する場合には、角度のフロートは、水平からデバイスの角度です。小さすぎるVector3を正規化しようとするとゼロに設定されるため、小さなベクトルは条件付きに移動しないようにしてください。サインを事前計算してサイクルを保存します。

関連する問題