AR Session の画面回転適応
この記事では、WeChat Mini Program を横画面で実行する必要がある場合に AR Session を設定する方法を紹介します。
開始する前に
- AR 駆動の 3D レンダリングを通じて、カメラ画像が画面方向に対して持つ回転角を理解してください。
- AR Session の概念とフローを理解してください。
Mega Mini Program プラグインの画面方向 enum
注記
スマートフォン画面方向の定義は、IOS、Android などのシステムの公式定義を参照してください。
Mega Mini Program プラグインの画面方向 enum DeviceOrientation:
| Constant | Value | Description |
|---|---|---|
Portrait |
0 | Portrait |
LandscapeLeft |
90 | LandscapeLeft |
PortraitUpsideDown |
180 | PortraitUpsideDown |
LandscapeRight |
270 | LandscapeRight |
WeChat Mini Program のグローバル設定で画面方向を変更する
app.json に window 設定を追加します。具体的な定義は 表示領域の変化への対応 を参照してください。
"window": {
"pageOrientation": "landscape"
}
実際の状況に応じて "portrait"(縦画面)または "landscape"(横画面)を入力します。
注意
AR Mini Program アプリでは、いかなる場合も "auto" を使用しないでください。場合によっては AR 画面に重大な異常が発生します。
画面方向を設定する
setDeviceOrientation(deviceOrientation) を呼び出して画面回転方向を渡します。いつでも呼び出すことができ、即時に有効になります。
たとえば、画面が自然な縦位置に対して反時計回りに 90 度回転した横画面モードで使用する場合:
let deviceOrientation = mega.DeviceOrientation.LandscapeLeft;
session.setDeviceOrientation(deviceOrientation);
mega プラグインが提供する画面方向設定は、WeChat Mini Programs に画面方向監視がないことを補うためのものです。WeChat は pageOrientation 設定で portrait と landscape の 2 つのオプションのみを提供しますが、AR アプリケーションにとってこの 2 つだけでは不十分です。たとえば、自然方向から反時計回りに 90 度回転した横画面と、自然方向から反時計回りに 270 度回転した横画面は完全に異なります。
したがって、app.json の pageOrientation が portrait に設定されている場合、一般的なスマートフォンの自然な縦方向が session のデフォルト方向であるため、setDeviceOrientation(deviceOrientation) を呼び出さなくてもかまいません。
app.json の pageOrientation が landscape に設定されている場合は、必ず setDeviceOrientation(deviceOrientation) を呼び出して画面方向を LandscapeLeft または LandscapeRight に固定する必要があります