Open5

Babylon.js 8.31.2の”Improve WebXR feature typing”について

にー兄さんにー兄さん

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: [] },
);