{ } { }
Jetpack SceneCore
Actualización más reciente | Versión estable | Versión potencial | Versión beta | Versión alfa |
---|---|---|---|---|
12 de diciembre de 2024 | - | - | - | 1.0.0-alpha01 |
Cómo declarar dependencias
Para agregar una dependencia en XR SceneCore, debes agregar el repositorio de Maven de Google a tu proyecto. Consulta el repositorio de Maven de Google para obtener más información.
Agrega las dependencias de los artefactos que necesites en el archivo build.gradle
de tu app o módulo:
Groovy
dependencies { implementation "androidx.xr.scenecore:scenecore:1.0.0-alpha01" // Required for Java implementation "com.google.guava:listenableFuture:1.0" // Required for Kotlin implementation "org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.9.0" // Use to write unit tests testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha01" }
Kotlin
dependencies { implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha01") // Required for Java implementation("com.google.guava:listenableFuture:1.0") // Required for Kotlin implementation("org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.9.0") // Use to write unit tests testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha01") }
Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.
Comentarios
Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.
Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.
Versión 1.0
Versión 1.0.0-alpha01
12 de diciembre de 2024
Lanzamiento de androidx.xr.scenecore:scenecore-* 1.0.0-alpha01
.
Funciones de la versión inicial Versión inicial para desarrolladores de Jetpack SceneCore, una biblioteca de grafos de escenas en 3D para crear y manipular escenas y entornos envolventes. Esta biblioteca te permite colocar y organizar modelos 3D y paneles de contenido en relación con los demás y tus entornos virtuales o del mundo real.
- SpatialEnvironment: Crea experiencias completamente envolventes con una imagen de cielo o una geometría de modelo 3D como telón de fondo para la escena de XR de tu entorno. O bien habilita la transferencia para que tu escena virtual se pueda integrar en el entorno real del usuario.
- PanelEntity: Agrega contenido 2D a tus escenas 3D incorporando diseños y actividades estándar de Android en paneles espacializados que pueden flotar o anclarse a superficies del mundo real.
- GltfModelEntity: Coloca, anima e interactúa con modelos 3D en tu escena. SceneCore admite el formato de archivo glTF para facilitar la integración con modelos existentes.
- SpatialAudio: Agrega fuentes de audio ambiente y puntuales a tu escena 3D para obtener un sonido espacializado y totalmente envolvente.
- StereoSurfaceEntity: SceneCore admite el enrutamiento de contenido renderizado en una superficie de Android para el ojo izquierdo o derecho. Se puede usar para renderizar contenido estereoscópico en un formato en paralelo o de arriba abajo, como fotos estéreo, videos en 3D y otras IU renderizadas de forma dinámica. Las aplicaciones deben usar MediaPlayer o ExoPlayer para la decodificación de video.
- Sistema de componentes: SceneCore ofrece un sistema de componentes sólido y flexible para agregar capacidades a tu contenido de XR, incluidas indicaciones visuales para que los usuarios muevan, cambien de tamaño y interactúen con modelos y paneles.
- Anclaje: Con la transferencia directa habilitada, puedes conectar paneles y modelos a superficies reales, lo que les brinda a los usuarios una integración perfecta del contenido virtual en su entorno real.
- Posición del usuario: Accede a la ubicación del usuario en la escena virtual para orientar tu contenido en función de su posición.
- SpatialCapabilities: Compila apps totalmente adaptables que aprovechen las capacidades espacializadas cuando estén disponibles, como el posicionamiento 3D del contenido de la IU. Además, tu app puede supervisar los cambios en las funciones mientras se ejecuta para modificar la experiencia según la forma en que el usuario usa su dispositivo Android XR.
Errores conocidos
- Actualmente, se requiere un minSDK de 30 para usar Jetpack SceneCore. Como solución alternativa, agrega la siguiente entrada de manifiesto
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>
para poder compilar y ejecutar con un minSDK de 23. - La sesión puede dejar de ser válida en varias situaciones que recrean automáticamente la actividad, como cambiar el tamaño de un panel principal, conectar periféricos y cambiar entre el modo oscuro y el modo claro. Si tienes problemas de invalidación de la sesión, las soluciones incluyen hacer que el panel principal no se pueda cambiar de tamaño, usar una entidad de panel dinámico, inhabilitar la recreación de actividades para cambios de configuración específicos o inhabilitar los cambios de tema del modo oscuro o claro.
- Los componentes móviles y de tamaño variable no son compatibles con GltfEntity.
- Entity.getSize() no es compatible con GltfEntity.
- Las apps de Jetpack XR deben solicitar el permiso
android.permission.SCENE_UNDERSTANDING
en AndroidManifest. - La creación de una sesión solo es compatible con dispositivos Android XR. En este momento, si creas una sesión y tratas de usarla en un dispositivo que no sea Android XR, obtendrás una RuntimeException.
- Establecer el cielo en nulo a través de "SpatialEnvironment.setSpatialEnvironmentPreference()" no genera un cielo negro sólido como se documenta. Puede generar el cielo predeterminado del sistema o no cambiar el cielo actual.
- Los clientes de SceneCore deben agregar
implementation(“com.google.guava:listenablefuture-1.0”)
a su configuración de Gradle para las dependencias de su app. En una versión futura, scenecore incluirá esta biblioteca como una dependencia deapi
para que los clientes no tengan que declararla de forma explícita. - SceneCore incluye erróneamente
com.google.guava:guava-31.1-android
ycom.google.protobuf:protobuf-javalite
como dependencias transitivas. Si esto genera errores de clase duplicados en tu compilación, se pueden excluir estas dos dependencias de forma segura. - Si tu app usa SceneCore y habilita ProGuard, fallará cuando creas una sesión. Como solución alternativa, inhabilita ProGuard. Consulta esta guía para obtener más información sobre cómo habilitar ProGuard.