2017-03-14 15 views
1

私はこのAndroidプラグインをUnityに持っています。現在、1フレームにつき1回、カメラの投影行列を再計算していますが、これは明らかに非常に無駄です。私は再計算する必要がある唯一の時間であるので、画面の向きが変わったときにだけ行列を再計算できるようにしたいと思います。Androidを拡張せずに画面の向きを変更する

しかし、私はオンラインで見ると、私は常にonConfigurationChangedまたはそのようなものを実装しているように見えるすべての答えは、最終的に同じことをする必要があります:私は本当にできないもの何も活動がないので、行う。それは完全なアプリケーションではなく、ビルドされたライブラリです。

OrientationEventListenerがあることは知っていますが、デバイスの向きが1度も変化するたびに発生するため、アプローチは非常に無駄になります。

私が知りたいのは、拡張アクティビティを使用する必要がないonConfigurationChangedイベントのような画面の向きの変化を検出する方法があるかどうかです。

// Event fired only when the screen orientation changes 
void onScreenOrientationChanged (ScreenOrientation orientation) 
{ 
    recalculateMatrix(orientation); 
} 

むしろ私をもっとしている今持っているものより:

基本的に私はで終わるしたいもののようなものであるあなたが言及したよう

// Method called once per frame 
void Draw() 
{ 
    // Draw code 
    ScreenOrientation orientation = getOrientation(); 
    recalculateMatrix(orientation); 
} 

答えて

1

、私はあなたが使用することができると思いますOrientationEventListener実装:

void onOrientationChanged (int orientation) { 
    if (orientationIsChanged(orientation)) { 
         // recalculate matrix 
    } 
} 

、あなたが

を実装する必要があります考慮orientationIsChanged個の

ブール(INT角)

:その左側が上にあるとき 「配向デバイスがその天然の位置に配向されている0度、90度、180度が逆になると270度、右が上になると270度になります。デバイスがフラットに近く、向きが決まらない場合は、ORIENTATION_UNKNOWNが返されます。 "

+0

これが唯一の方法であれば、おかげさまです:)しかし、AndroidとiOSの両方が誰もがいつでも繋ぐことができる標準の画面方向変更イベントです。 – DisturbedNeo

関連する問題