SceneCoreEntity adalah composable subruang yang menjembatani
library Jetpack SceneCore dan Compose untuk XR sehingga Anda dapat menggunakan
entity yang dibuat dengan SceneCore di tata letak Compose. Hal ini memungkinkan Anda membangun
entity tingkat rendah dan komponen kustom sekaligus memungkinkan Compose mengukur,
memosisikan, mengubah induk, menambahkan turunan, dan menerapkan pengubah ke entity tersebut.
Menggunakan entity SceneCore untuk menempatkan entity di tata letak Anda
Contoh berikut menunjukkan cara menggunakan entity SceneCore untuk menempatkan entity dalam tata letak Anda:
val virtualPixelDensity = session.scene.virtualPixelDensity Subspace { SceneCoreEntity( modifier = SubspaceModifier.offset(x = 50.dp), factory = { SurfaceEntity.create( session = session, pose = Pose.Identity, stereoMode = SurfaceEntity.StereoMode.MONO ) }, update = { entity -> // Compose state changes may be applied to the SceneCore entity here. entity.stereoMode = SurfaceEntity.StereoMode.SIDE_BY_SIDE }, sizeAdapter = object : SceneCoreEntitySizeAdapter<SurfaceEntity> { override fun onLayoutSizeChanged( entity: SurfaceEntity, size: IntVolumeSize ) { val extents = FloatSize2d( size.width.toFloat(), size.height.toFloat() ) entity.shape = SurfaceEntity.Shape.Quad(extents) } }, ) { // Content here will be children of the SceneCoreEntity // in the scene graph. } }
Poin penting tentang kode
- Blok factory: Blok factory adalah tempat Anda melakukan inisialisasi entity
SurfaceEntityyang mendasarinya dari SceneCore. - Blok update: Gunakan blok update untuk mengubah properti entity sebagai respons terhadap perubahan status Compose Anda.
- Adaptasi Ukuran:
sizeAdaptermengomunikasikan dimensi entity kembali ke sistem tata letak Compose.
Informasi tambahan
- Lihat Menambahkan model 3D ke aplikasi untuk lebih memahami cara memuat konten 3D dalam
SceneCoreEntity.