Pengubah subruang

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 melihat 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 (sebagian) mengisi 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 mendeklarasikan 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 yang diberikan 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.

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.

Menambahkan perilaku ke composable

resizable

Jika pengubah resizable diaktifkan, kontrol UI yang dapat ditarik akan ditampilkan yang memungkinkan pengguna mengubah ukuran elemen. Hal ini mirip dengan penggunaan ResizableComponent pada Entity.

movable

Jika pengubah movable diaktifkan, kontrol UI akan ditambahkan ke komponen yang memungkinkan pengguna memindahkan elemen dalam ruang 3D. Hal ini mirip dengan penggunaan MovableComponent pada Entity.

Node tata letak movable dapat secara opsional menentukan jenis bidang yang harus ditambatkan saat dipindahkan. Misalnya, untuk membuat SpatialPanel yang menempel ke tabel:

SpatialPanel(
  modifier.movable(anchorPlaneSemantics = setOf(PlaneSemantic.TABLE))
) {
  // This panel snaps to available planes that are detected as a TABLE.
}

Penyelarasan ke bidang memerlukan izin runtime android.permission.SCENE_UNDERSTANDING_COARSE untuk diberikan ke aplikasi Anda.

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.