Open5
Babylon.js 8.31.2の”Improve WebXR feature typing”について
このPRが個人的にとても嬉しいものだったのでまとめていく
Babylon.jsでWebXR Featureを有効化するには、WebXRFeatureManagerというサービスロケーターを使う必要があり、enableFeatureメソッドの第1引数にfeatureの名前を指定して、featureのインスタンスを取得するフローになっている
従来のAPIでは、enableFeatureではIWebXRFeature型としてインスタンスが帰ってきてしまっていたので、型アノテーションをしないといけなかったこと
今回のプルリクではenableFeatureがジェネリック関数になり、featureの名前とfeatureの型を対にしたMapを用いてより厳格な型でfeatureを取得できるようになった
従来は
- 第1引数は文字列だし(WebXRFeatureNameで型付けできる)
- optionはany
- 返ってくるのはIWebXRFeatureName
なので今まではこんな感じにしなくちゃいけなかった
const depthSensing = featuresManager.enableFeature(
WebXRFeatureName.DEPTH_SENSING,
"latest",
{
usagePreference: [],
dataFormatPreference: [],
} satisfies IWebXRDepthSensingOptions,
) as WebXRDepthSensing;
今回のPRでは上記3点が解決している
const depthSensing = featuresManager.enableFeature(
"xr-depth-sensing",
"latest",
{ usagePreference: [], dataFormatPreference: [] },
);