XR専用コンポーネントの作成方法
多くのコンポーネントは、VRまたはARセッションが開始されたときにのみ必要です。
コンポーネントがxrセッション以外では更新されないようにするには、以下のコードスニペットを使用できます。
import {Component} from '@wonderlandengine/api';
export class ActiveOnlyInVr extends Component {
static TypeName = 'active-only-in-vr';
start() {
this.engine.onXRSessionStart.add(this.onXRSessionStart);
this.engine.onXRSessionEnd.add(this.onXRSessionEnd);
/* セッションがすでにアクティブな可能性があります */
this.active = !!this.engine.xr;
}
onDestroy() {
this.engine.onXRSessionStart.remove(this.onXRSessionStart);
this.engine.onXRSessionEnd.remove(this.onXRSessionEnd);
}
update() {
/* xrSessionが有効な場合にのみ呼び出されます */
}
onXRSessionStart = s => {
this.active = true;
};
onXRSessionEnd = s => {
this.active = false;
};
}); 他のコンポーネントの(非)アクティブ化
セッションの状態に基づいて他のコンポーネントを無効化/有効化したい場合、コードを変更せずに、vr-active-mode-switchコンポーネントを使用できます。これにより、ユーザーがXRセッション中かどうかに応じてコンポーネントを無効化/有効化します。