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
, fillMaxHeight
i fillMaxDepth
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
, requiredHeight
i requiredDepth
. 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
,y
iz
, - za pomocą
axisAngle
, czyliVector3
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.