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
, danz
. - Menggunakan
axisAngle
, yang merupakanVector3
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.