SubspaceModifier は、Subspace のコンポーザブルの Compose 修飾子に似ています。SubspaceModifier を使用すると、3D 空間でコンポーザブルを操作し、3D レイアウト ノードの位置決め、回転、動作の追加を行うことができます。
レイアウト
デフォルトでは、Subspace はアプリの閲覧に推奨されるスペースによって制限されます。これらの境界は、2D Compose レイアウトの境界と同様に、サブスペース コンポーネントのレイアウトを測定する際に使用されます。
境界を塗りつぶす
修飾子 fillMaxSize、fillMaxWidth、fillMaxHeight、fillMaxDepth を使用すると、コンテンツが親の境界を(部分的に)埋めます。塗りつぶし修飾子を使用すると、アプリのレイアウトで XR デバイスのディスプレイ特性に依存しないコンテンツを配置できます。
サイズと必須サイズを設定する
修飾子 size、width、height、depth は、コンテンツの推奨サイズを宣言します。コンテンツの正確なサイズを宣言するには、requiredSize、requiredWidth、requiredHeight、requiredDepth を使用します。これらの単位は dp で指定する必要があります。メートルから dp に変換するには、Meter.toDp() を使用します。
コンポーザブルを配置する
offset
offset 修飾子は、x、y、z 軸に沿って 3D 空間でコンポーザブルを移動します。これらの単位は dp で指定する必要があります。メートルから dp に変換するには、Meter.toDp() を使用します。
rotate
rotate 修飾子は、指定されたコンポーザブルを空間内で回転させます。回転の方向と量は、さまざまな方法で指定できます。
- ピッチ、ヨー、ロールを使用して、それぞれ
x、y、z軸を中心とした回転を指定します。 - 回転軸を表す
Vector3であるaxisAngleと、回転させる角度を使用して、 - 回転を表す
Quaternionを使用します。
rotateToLookAtUser
rotateToLookAtUser 修飾子は、コンテンツが常にユーザーを向くように継続的に回転させます。この修飾子を使用して、コンテンツが Y 軸上でユーザーの方向を向くように回転しながら、重力に沿って直立した状態を維持する「看板」効果を実現することもできます。これを行うには、rotateToLookAtUser 修飾子と gravityAligned 修飾子を組み合わせます。
この修飾子を使用するには、DeviceTrackingMode.LAST_KNOWN を使用して現在のセッションのオブジェクトを構成する必要があります。
コンポーザブルの外観を変更する
alpha
alpha 修飾子は、要素とその子要素の不透明度を設定します。0f は完全に透明、1.0f は完全に不透明を表します。
scale
scale 修飾子は、コンポーザブルのコンテンツを横軸、縦軸、奥行き軸に沿って拡大 / 縮小します。
テストとアクセシビリティ
semantics
semantics 修飾子は、テストやユーザー補助機能で使用するセマンティクスをレイアウト ノードに追加します。Jetpack Compose のセマンティクスと SemanticsModifier をご覧ください。
testTag
testTag 修飾子は SemanticsPropertyReceiver.testTag の短縮形です。これにより、テスト フレームワークはテストで要素を見つけることができます。