Encje SceneCore

Odpowiednie urządzenia z XR
Te wskazówki pomogą Ci tworzyć treści na te typy urządzeń z XR.
Gogle XR
Przewodowe okulary XR

SceneCoreEntity to funkcja kompozycyjna podprzestrzeni, która łączy biblioteki Jetpack SceneCore i Compose for XR, dzięki czemu możesz używać encji utworzonych za pomocą SceneCore w układach Compose. Dzięki temu możesz tworzyć encje niższego poziomu i komponenty niestandardowe, a Compose może określać rozmiar, pozycję, element nadrzędny, dodawać elementy podrzędne i stosować modyfikatory do tych encji.

Używanie encji SceneCore do umieszczania encji w układzie

Poniższy przykład pokazuje, jak używać encji SceneCore do umieszczania encji w układzie:

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.
    }
}

Najważniejsze informacje o kodzie

  • Blok fabryczny: w bloku fabrycznym inicjujesz bazowy element SurfaceEntity z SceneCore.
  • Blok aktualizacji: użyj bloku aktualizacji, aby zmodyfikować właściwości elementu w odpowiedzi na zmiany w stanie Compose.
  • Dostosowanie rozmiaru: sizeAdapter przekazuje wymiary elementu z powrotem do systemu układu Compose.

Dodatkowe informacje