Modyfikatory podprzestrzeni

SubspaceModifier jest podobny do modyfikatora Compose w przypadku komponentów kompozycyjnych w Subspace. SubspaceModifier umożliwia manipulowanie komponentami w przestrzeni 3D, co pomaga w pozycjonowaniu, obracaniu i dodawaniu zachowań do węzłów układu 3D.

Układ

Domyślnie Subspace jest ograniczony zalecaną przestrzenią do wyświetlania aplikacji. Te granice są używane podczas pomiaru układu komponentów podprzestrzeni, podobnie jak granice w układach 2D Compose.

Wypełnij granice

Modyfikatory fillMaxSize, fillMaxWidth, fillMaxHeightfillMaxDepth powodują, że treść (częściowo) wypełnia granice elementu nadrzędnego. Używanie modyfikatorów wypełnienia pomaga w układaniu treści aplikacji niezależnie od charakterystyki wyświetlacza urządzenia XR.

Ustawianie rozmiaru i wymaganego rozmiaru

Modyfikatory size, width, height i depth określają preferowany rozmiar treści. Aby zadeklarować dokładny rozmiar treści, użyj atrybutów requiredSize, requiredWidth, requiredHeightrequiredDepth. Jednostki te muszą być podane w dp. Aby przeliczyć metry na dp, użyj Meter.toDp().

Komponenty kompozycyjne pozycji

offset

Modyfikator offset przesuwa element kompozycyjny w przestrzeni 3D wzdłuż osi x, y i z. Jednostki te muszą być podane w dp. Aby przeliczyć metry na dp, użyj Meter.toDp().

rotate

Modyfikator rotate obraca dany komponent w przestrzeni. Kierunek i wielkość obrotu możesz określić na różne sposoby:

  • Za pomocą kąta pochylenia, odchylenia i przechylenia, które określają obrót wokół osi x, yz,
  • za pomocą axisAngle, czyli Vector3 reprezentującego oś obrotu, oraz liczby stopni, o którą należy obrócić element wokół tej osi.
  • Użyj Quaternion, który reprezentuje rotację.

Zmiana wyglądu komponentów kompozycyjnych

alpha

Modyfikator alpha ustawia przezroczystość elementu i jego elementów podrzędnych, gdzie 0f oznacza całkowitą przezroczystość, a 1.0f – całkowitą nieprzezroczystość.

scale

Modyfikator scale skaluje zawartość elementu kompozycyjnego wzdłuż osi poziomej, pionowej i głębokości.

Dodawanie zachowań do funkcji kompozycyjnych

resizable

Gdy modyfikator resizable jest włączony, wyświetlane są elementy interfejsu, które można przeciągać, aby zmienić rozmiar elementu. Jest to podobne do używania ResizableComponent na urządzeniu Entity.

movable

Gdy modyfikator movable jest włączony, do komponentu zostaną dodane elementy interfejsu, które umożliwiają użytkownikowi przesuwanie elementu w przestrzeni 3D. Jest to podobne do używania MovableComponent na Entity.

movable Węzeł układu może opcjonalnie określać typy płaszczyzn, do których powinien być przytwierdzany podczas przesuwania. Aby na przykład utworzyć element SpatialPanel, który przyciąga się do tabel:

SpatialPanel(
  modifier.movable(anchorPlaneSemantics = setOf(PlaneSemantic.TABLE))
) {
  // This panel snaps to available planes that are detected as a TABLE.
}

Przyciąganie do płaszczyzn wymaga przyznania aplikacji android.permission.SCENE_UNDERSTANDING_COARSE uprawnień w czasie działania.

Testowanie i ułatwienia dostępu

semantics

Modyfikator semantics dodaje do węzła układu semantykę, która jest używana w testach i ułatwieniach dostępu. Zobacz Semantyka w Jetpack Compose i SemanticsModifier.

testTag

Modyfikator testTag jest skrótem od SemanticsPropertyReceiver.testTag, który umożliwia platformom testowym znajdowanie elementu w testach.