Ar session rotation d'écran adaptée
Cet article explique comment configurer une session AR lorsque vous devez exécuter une mini-programme WeChat en mode paysage.
Avant de commencer
- Comprenez ce qu'est l'angle de rotation de l'image de la caméra par rapport à l'orientation de l'écran via Rendu 3D piloté par AR.
- Comprenez Le concept et le flux d'une session AR.
Énumération de l'orientation de l'écran du plugin Mega mini-programme
Note
Reportez-vous aux définitions officielles des systèmes tels qu'IOS, Android, etc. pour l'orientation de l'écran du téléphone.
Énumération d'orientation de l'écran du plugin Mega mini-programme DeviceOrientation:
| Constant | Value | Description |
|---|---|---|
Portrait |
0 | Portrait |
LandscapeLeft |
90 | LandscapeLeft |
PortraitUpsideDown |
180 | PortraitUpsideDown |
LandscapeRight |
270 | LandscapeRight |
Modifier l'orientation de l'écran dans la configuration globale de la mini-programme WeChat
Ajoutez la configuration window dans app.json, voir Répondre aux changements de zone d'affichage pour la définition détaillée.
"window": {
"pageOrientation": "landscape"
}
Remplissez "portrait" (mode portrait) ou "landscape" (mode paysage) selon la situation réelle.
Attention
N'utilisez jamais "auto" dans une application mini-programme AR, car cela peut entraîner des anomalies graves de l'image AR dans certains cas.
Définir l'orientation de l'écran
Appelez setDeviceOrientation(deviceOrientation) en passant la direction de rotation de l'écran. Peut être appelé à tout moment et prend effet immédiatement.
Par exemple, pour utiliser en mode paysage avec une rotation de 90 degrés dans le sens antihoraire par rapport à la position verticale naturelle de l'écran :
let deviceOrientation = mega.DeviceOrientation.LandscapeLeft;
session.setDeviceOrientation(deviceOrientation);
La configuration d'orientation d'écran fournie par le plugin mega vise à combler l'absence de surveillance d'orientation d'écran dans les mini-programmes WeChat. WeChat ne propose que deux options dans le paramètre pageOrientation : portrait et landscape, ce qui est insuffisant pour les applications AR. Par exemple, un écran paysage tourné de 90 degrés dans le sens antihoraire par rapport à l'orientation naturelle est complètement différent d'un écran paysage tourné de 270 degrés dans le sens antihoraire.
Par conséquent, lorsque pageOrientation dans app.json est défini sur portrait, il n'est pas nécessaire d'appeler setDeviceOrientation(deviceOrientation), car la direction verticale naturelle du téléphone est généralement l'orientation par défaut de la session.
Lorsque pageOrientation dans app.json est défini sur landscape, vous devez appeler setDeviceOrientation(deviceOrientation) pour fixer l'orientation de l'écran à LandscapeLeft ou LandscapeRight.