Omówienie modyfikatorów podprzestrzeni

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

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 i obracaniu węzłów układu 3D oraz dodawaniu do nich zachowań.

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 w aplikacji niezależnie od charakterystyki wyświetlacza urządzenia XR.

Ustawianie rozmiaru i wymaganego rozmiaru

Modyfikatory size, width, heightdepth 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 wzoru Meter.toDp().

Komponenty kompozycyjne pozycji

offset

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

rotate

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

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

rotateToLookAtUser

Modyfikator rotateToLookAtUser nieustannie obraca treścią, aby była zawsze skierowana w stronę użytkownika. Możesz też użyć tego modyfikatora, aby uzyskać efekt „billboardu”, w którym treść obraca się w kierunku użytkownika wzdłuż osi Y, zachowując przy tym pozycję pionową i zgodność z grawitacją. Aby to zrobić, połącz modyfikator rotateToLookAtUser z modyfikatorem gravityAligned.

Przenoszenie i zmienianie rozmiaru za pomocą funkcji kompozycyjnych

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

Przesuwanie elementów

Przesuwne modyfikatory umożliwiają użytkownikom chwytanie i przesuwanie elementów przestrzeni podrzędnej.

  • transformingMovable: użyj tego modyfikatora w przypadku standardowego ruchu. Ten modyfikator konfiguruje element tak, aby był interaktywny i możliwy do przenoszenia przez użytkownika. System automatycznie oblicza i stosuje nową pozę oraz skalę na podstawie danych wejściowych użytkownika.

  • movable: użyj tego modyfikatora, aby zdefiniować niestandardowe zachowanie ruchu. System udostępnia możliwość przenoszenia, ale musisz użyć wymaganego zdarzenia onMove i zastosować wynik. Przydaje się to do ograniczania ruchu lub tworzenia niestandardowego ruchu w aplikacji.

Zmienianie rozmiaru elementów

Modyfikatory zmiany rozmiaru umożliwiają użytkownikom chwytanie i zmienianie rozmiaru elementów podprzestrzeni.

  • transformingResizable: użyj tego modyfikatora w przypadku zmiany rozmiaru zarządzanej przez system. Ten modyfikator automatycznie obsługuje gest zmiany rozmiaru i stosuje nowe wymiary określone przez użytkownika.

  • resizable: użyj tego modyfikatora w przypadku niestandardowej logiki zmiany rozmiaru. System udostępnia możliwość zmiany rozmiaru, ale musisz użyć zdarzenia onResize i zastosować wynik. Ten modyfikator jest przydatny w złożonych scenariuszach, np. gdy chcesz zachować określony współczynnik proporcji lub dostosować ogólny układ innych komponentów po zakończeniu zmiany rozmiaru.

Zmiana wyglądu komponentów

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ść funkcji kompozycyjnej wzdłuż osi poziomej, pionowej i głębokości.

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.