Dispositivos XR relevantes
Estas orientações ajudam você a criar experiências para esses tipos de dispositivos XR.
Um SceneCoreEntity é um elemento combinável de subespaço que une as bibliotecas
Jetpack SceneCore e Compose para XR para que você possa usar
entidades criadas com o SceneCore em layouts do Compose. Isso permite criar
entidades de nível inferior e componentes personalizados, além de permitir que o Compose dimensione, posicione, redefina o pai, adicione filhos e aplique modificadores a essas entidades.
Usar uma entidade do SceneCore para colocar entidades no layout
O exemplo a seguir mostra como usar uma entidade do SceneCore para colocar entidades no layout:
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. } }
Pontos principais sobre o código
- Bloco de fábrica: é onde você inicializa a entidade
SurfaceEntitydo SceneCore. - Bloco de atualização: use o bloco de atualização para modificar as propriedades da entidade em resposta a mudanças no estado do Compose.
- Adaptação de tamanho: o
sizeAdaptercomunica as dimensões da entidade de volta ao sistema de layout do Compose.
Informações adicionais
- Consulte Adicionar modelos 3D ao app para entender melhor como carregar conteúdo 3D em um
SceneCoreEntity.