Memahami pengubah subruang

Perangkat XR yang kompatibel
Panduan ini membantu Anda membangun pengalaman untuk jenis perangkat XR ini.
Headset XR
Kacamata XR Berkabel

SubspaceModifier mirip dengan pengubah Compose untuk composable dalam Subspace. SubspaceModifier memungkinkan Anda memanipulasi composable dalam ruang 3D, membantu Anda memosisikan, memutar, dan menambahkan perilaku ke node tata letak 3D.

Tata Letak

Secara default, Subspace dibatasi oleh ruang yang direkomendasikan untuk menampilkan aplikasi. Batas ini digunakan saat mengukur tata letak komponen subruang Anda, mirip dengan batas dalam tata letak Compose 2D.

Batas pengisian

Pengubah fillMaxSize, fillMaxWidth, fillMaxHeight, dan fillMaxDepth membuat konten mengisi (sebagian) batas induknya. Penggunaan pengubah pengisian membantu tata letak aplikasi Anda menampilkan konten yang tidak bergantung pada karakteristik tampilan perangkat XR.

Menetapkan ukuran dan ukuran yang diperlukan

Pengubah size, width, height, dan depth mendeklarasikan ukuran konten yang diinginkan. Untuk menyatakan ukuran persis konten, gunakan requiredSize, requiredWidth, requiredHeight, dan requiredDepth. Unit ini harus ditentukan dalam dp; untuk mengonversi dari meter ke dp, gunakan Meter.toDp().

Memosisikan composable

offset

Pengubah offset memindahkan composable dalam ruang 3D di sepanjang sumbu x, y, dan z. Unit ini harus ditentukan dalam dp; untuk mengonversi dari meter ke dp, gunakan Meter.toDp().

rotate

Pengubah rotate memutar composable tertentu di ruang. Anda dapat menentukan arah dan jumlah rotasi dengan berbagai cara:

  • Menggunakan pitch, yaw, dan roll, yang menentukan rotasi di sekitar sumbu x, y, dan z,
  • Menggunakan axisAngle, yang merupakan Vector3 yang merepresentasikan sumbu rotasi, dan jumlah derajat yang harus diputar,
  • Menggunakan Quaternion yang merepresentasikan rotasi.

rotateToLookAtUser

Pengubah rotateToLookAtUser terus memutar konten sehingga selalu menghadap pengguna. Anda juga dapat menggunakan pengubah ini untuk mencapai efek "papan iklan" saat konten berputar menghadap pengguna pada sumbu Y sambil tetap tegak dan selaras dengan gravitasi. Untuk melakukannya, gabungkan pengubah rotateToLookAtUser dengan pengubah gravityAligned.

Memindahkan dan Mengubah Ukuran dengan composable

Izinkan pengguna memanipulasi posisi dan ukuran objek secara langsung dalam ruang 3D. Anda dapat menambahkan pengubah ini ke komponen individual (seperti SpatialPanel), subruang, dan komponen tata letak spasial (seperti SpatialRow atau SpatialColumn).

Memindahkan elemen

Pengubah yang dapat dipindahkan memungkinkan pengguna mengambil dan memposisikan ulang elemen subruang.

  • transformingMovable: Gunakan pengubah ini untuk gerakan standar. Pengubah ini mengonfigurasi elemen agar interaktif dan dapat dipindahkan oleh pengguna. Sistem secara otomatis menghitung dan menerapkan pose dan skala baru berdasarkan input pengguna.

  • movable: Gunakan pengubah ini untuk menentukan perilaku gerakan kustom. Meskipun sistem menyediakan kemampuan gerakan, Anda harus menggunakan peristiwa onMove yang diperlukan dan menerapkan hasilnya. Hal ini berguna untuk membatasi gerakan atau membuat gerakan kustom di aplikasi Anda.

Mengubah ukuran elemen

Pengubah yang dapat diubah ukurannya memungkinkan pengguna mengambil dan mengubah ukuran elemen subruang.

  • transformingResizable: Gunakan pengubah ini untuk mengubah ukuran yang dikelola sistem. Pengubah ini secara otomatis menangani gestur ubah ukuran dan menerapkan dimensi baru yang ditentukan pengguna.

  • resizable: Gunakan pengubah ini untuk logika ubah ukuran kustom. Meskipun sistem menyediakan kemampuan ubah ukuran, Anda harus menggunakan peristiwa onResize dan menerapkan hasilnya. Pengubah ini berguna untuk skenario kompleks, seperti mempertahankan rasio aspek tertentu atau menyesuaikan kembali tata letak keseluruhan komponen lain setelah pengubahan ukuran berakhir.

Mengubah tampilan komponen

alpha

Pengubah alpha menetapkan opasitas elemen dan turunannya, dengan 0f mewakili sepenuhnya transparan dan 1.0f mewakili sepenuhnya buram.

scale

Pengubah scale menskalakan konten composable di sepanjang sumbu horizontal, vertikal, dan kedalaman.

Pengujian dan aksesibilitas

semantics

Pengubah semantics menambahkan semantik ke node tata letak, untuk digunakan dalam pengujian dan aksesibilitas. Lihat Semantik di Jetpack Compose dan SemanticsModifier.

testTag

Pengubah testTag adalah singkatan dari SemanticsPropertyReceiver.testTag, yang memungkinkan framework pengujian menemukan elemen dalam pengujian.