物理カメラを扱うためのクラスWebCamTextureにこんな変数がある。
WebCamTexture.videoRotationAngle
右回りの角度 (度) を返します。多角形を回転させるためにその値を使用し、カメラのコンテンツを正しい向きで表示できます。
説明を見てもよくわからないので実際に使ってみる。
この値はカメラは関係なく、スマホの向き(Device Orientation)によって以下のように変わりました。
- portrait(通常縦持ち) => 270
- portrait upside down(逆縦持ち)=> 90
- landscape left(通常横持ち)=>0
- landscape right(逆横持ち)=> 180
つまり通常横持ち(写真を撮るときの構え)で0になってそこから左回りに90度ずつ変化しました。
これは端末の向きが変わるたびにオブジェクトを回転させる処理の
1 2 3 4 5 6 7 8 9 10 11 12 |
int r; void Update(){ switch(Input.deviceOrientation){ case DeviceOrientation.FaceUp: case DeviceOrientation.Portrait: r=270;break; case DeviceOrientation.LandscapeLeft: r= 0;break; case DeviceOrientation.FaceDown: case DeviceOrientation.PortraitUpsideDown:r= 90;break; case DeviceOrientation.LandscapeRight: r=180;break; } ... } |
みたいな部分を簡略化できる。
通常アプリに比べて、カメラ系のアプリは端末方向を意識する場面も多いのでちょっとは役に立つかもしれない。
また、書き換えてテクスチャの方を回転できないかと思ったけどread-onlyだった。