Omówienie modyfikatorów podprzestrzeni

Odpowiednie urządzenia z XR
Te wskazówki pomogą Ci tworzyć aplikacje na te typy urządzeń z XR.
Gogle XR
Przewodowe okulary XR

SubspaceModifier jest podobny do modyfikatora Compose dla elementów kompozycyjnych w Subspace. SubspaceModifier umożliwia manipulowanie elementami kompozycyjnymi 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 przez zalecaną przestrzeń do wyświetlania aplikacji. Te granice są używane podczas pomiaru układu komponentów podprzestrzeni , podobnie jak granice w układach Compose 2D.

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ładzie treści aplikacji, która jest niezależna od charakterystyki wyświetlacza urządzenia z 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 requiredSize, requiredWidth, requiredHeight i requiredDepth. Te jednostki muszą być określone w dp; aby przekonwertować metry na dp, użyj Meter.toDp().

Pozycjonowanie elementów kompozycyjnych

offset

Modyfikator offset przesuwa element kompozycyjny w przestrzeni 3D wzdłuż osi x, y, i z. Te jednostki muszą być określone w dp; aby przekonwertować metry na dp, użyj Meter.toDp().

rotate

Modyfikator rotate obraca dany element kompozycyjny w przestrzeni. Kierunek i stopień obrotu można określić na różne sposoby:

  • za pomocą pochylenia, odchylenia i obrotu, które określają odpowiednio obrót wokół osi x, y i z;
  • za pomocą axisAngle, czyli Vector3 reprezentującego oś obrotu i stopień obrotu wokół niej;
  • za pomocą Quaternion reprezentującego obrót.

rotateToLookAtUser

Modyfikator rotateToLookAtUser nieustannie obraca treść, tak aby zawsze była skierowana do użytkownika. Możesz też użyć tego modyfikatora, aby uzyskać efekt „billboardu”, w którym treść obraca się w taki sposób, aby była skierowana do użytkownika na osi Y, a jednocześnie pozostawała w pozycji pionowej i wyrównana do grawitacji. Aby to zrobić, połącz modyfikator rotateToLookAtUser z modyfikatorem gravityAligned.

Przesuwanie i zmienianie rozmiaru za pomocą elementów kompozycyjnych

Umożliw użytkownikom bezpośrednie manipulowanie położeniem i rozmiarem obiektów w przestrzeni 3D. Możesz dodać te modyfikatory do poszczególnych komponentów (np. SpatialPanel), podprzestrzeni i komponentów układu przestrzennego (np. SpatialRow lub SpatialColumn).

Przesuwanie elementów

Gdy modyfikator movable jest obecny i włączony, wyświetlane są przeciągane elementy sterujące interfejsu , które umożliwiają użytkownikowi przesuwanie elementu w przestrzeni 3D. Konkretne zachowanie tego ruchu jest określone przez podaną movePolicy:

  • MovePolicy.default: system całkowicie obsługuje ruch i automatycznie oblicza oraz stosuje nową pozę i skalę na podstawie danych wejściowych użytkownika.
  • MovePolicy.custom: system oblicza pozę docelową na podstawie danych wejściowych, ale nie stosuje jej automatycznie do powiązanego elementu. Jest to przydatne do ograniczania ruchu lub tworzenia niestandardowego ruchu w aplikacji.

Zmienianie rozmiaru elementów

Gdy modyfikator resizable() jest obecny i włączony, wyświetlane są elementy sterujące interfejsu , które umożliwiają użytkownikowi zmianę rozmiaru elementu w przestrzeni 3D. Konkretne zachowanie zmiany rozmiaru jest określone przez podaną resizePolicy:

  • ResizePolicy.default(): system automatycznie obsługuje gest zmiany rozmiaru i stosuje nowe wymiary do treści.
  • ResizePolicy.custom(): system udostępnia SpatialResizeEvent i nie stosuje automatycznie wyniku zmiany rozmiaru do powiązanego elementu.

Zmienianie wyglądu elementów kompozycyjnych

alpha

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

scale

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

Testowanie i ułatwienia dostępu

semantics

Modyfikator semantics dodaje semantykę do węzła układu na potrzeby testowania i ułatwień dostępu. Zobacz Semantyka w Jetpack Compose i SemanticsModifier.

testTag

Modyfikator testTag to skrót od SemanticsPropertyReceiver.testTag, który umożliwia frameworkom testowym znajdowanie elementu w testach.