SceneCoreEntity, Jetpack SceneCore ve Compose for XR kitaplıkları arasında köprü oluşturan bir alt alan composable'ıdır. Bu sayede, SceneCore ile oluşturulan varlıkları Compose düzenlerinde kullanabilirsiniz. Bu sayede, alt düzey varlıklar ve özel bileşenler oluşturabilir, Compose'un bu varlıkları boyutlandırmasına, konumlandırmasına, yeniden üst öğe atamasına, alt öğe eklemesine ve değiştiriciler uygulamasına izin verebilirsiniz.
Düzeninize öğe yerleştirmek için SceneCore öğesi kullanma
Aşağıdaki örnekte, öğeleri düzeninize yerleştirmek için SceneCore öğesinin nasıl kullanılacağı gösterilmektedir:
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. } }
Kodla ilgili önemli noktalar
- Fabrika bloğu: Fabrika bloğu, SceneCore'dan temel
SurfaceEntityvarlığını başlattığınız yerdir. - Güncelleme bloğu: Oluşturma durumunuzdaki değişikliklere yanıt olarak öğenin özelliklerini değiştirmek için güncelleme bloğunu kullanın.
- Boyut uyarlama:
sizeAdapter, öğenin boyutlarını Compose düzen sistemine geri iletir.
Ek bilgiler
SceneCoreEntityiçinde 3D içeriklerin nasıl yükleneceğini daha iyi anlamak için Uygulamanıza 3D modeller ekleme başlıklı makaleyi inceleyin.