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, 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 w 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 wzoru Meter.toDp().
Komponenty kompozycyjne pozycji
offset
Modyfikator offset przesuwa komponent 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 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,yiz. - Użyj
axisAngle, czyliVector3reprezentującego oś obrotu, oraz liczby stopni, o które należy obrócić obiekt. - za pomocą
Quaternionreprezentują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 zdarzeniaonMovei 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ć zdarzeniaonResizei 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.