SceneCore varlıkları

Uygun XR cihazlar
Bu kılavuz, bu tür XR cihazları için deneyimler geliştirmenize yardımcı olur.
XR Kulaklığı
Kablolu XR Gözlükleri

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 SurfaceEntity varlığı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