This format is roughly based on Keep a Changelog.
- Added
onHeadsetMounted
andonHeadsetUnmounted
APIs for detecting when a user puts on or takes off their headset.
- None
- None
- Fixed Windows specific hot reload bug with "Read-only filesystem" error in Gradle task.
- Fixed crash where a
SceneLayer
was being destroyed twice due to garbage collection.
- The
meta-spatial-sdk-compose
package is now available, enabling View-based panels to render Jetpack Compose UI - Javadocs are now available for Maven Central released packages (starting with 0.5.3)
- MRUK
- Added Scene Raycasting functionality (and a raycast demo in the MrukSample project)
- Optimized scene loading
- None
- None
- Hot reload is now more reliable (previously has issues with parallelization)
- Added
Followable
Component andFollowableSystem
which allows devs to easily tether objects together. See Animations Sample for an example use. - Hot Reload: Adds the ability to reload your
glb
/gltf
/glxf
and Meta Spatial Editor scenes while running your app via the Gradle plugin.- Auto Export from Meta Spatial Editor: Saving in Spatial Editor automatically exports to the app and pushes to the headset for hot reload
- Two Reload Types:
- Delete all entities and recreate them: more stable but does not work for all apps
- Keep entities and reload meshes only: works for all apps, but less stable and does not reload components
SamplerConfig
s now also apply to layers instead of just non-layer panels- Cylinder panels now have a transparent back applied to them (instead of just being invisible)
- Gradle Plugin: References to string paths in plugin configuration are replaced with file references.
- NOTE: This requires changes to your
build.gradle.kts
. Example new usage can be found in the samplebuild.gradle.kts
files.
- NOTE: This requires changes to your
- Gradle Plugin: Telemetry now reports out simple usage statistics.
- Deprecated
QuadLayerConfig
/CylinderLayerConfig
/EquirectLayerConfig
. UseLayerConfig
instead for panel's layer configuration.
- Fixed a crash when garbage collecting a panel.
- Fixed a crash when updating the
Panel
component on an entity that already had aPanel
component. - Crash fixed in Focus showcase
- Added support for Secure layers Layers can now be marked as secure making them appear black while recording. This is possible at a global level or an individual layer level.
// globally enable
scene.setSecureLayers(true)
// individually enable
myLayerConfig.secure = true
In addition, this value can be set on a global level using your AndroidManifest
<meta-data
android:name="com.meta.spatial.SECURE_LAYERS"
android:value="true"
/>
- Removed the old Anchor Systems in toolkit, please use MRUK (Mixed Reality Utility Kit) in Meta Spatial SDK
- Init order issue for FeatureManager An overridden registerFeatures() was not able to reference the top level class variables. This was because the initialization was happening very early in the creation of a Feature. This was resolved by moving initialization later in activity startup.
- Memory leak on panel destruction Destroy the activity panel by calling lifecycle events onPause, onStop, onDestroy sequentially. Release the panel scene texture and mesh as panel destruction, which reclaims the resource early.
- Fixed the issue that the panel faced the user backwards when grabbed from behind. The panel will now always face the user correctly, regardless of the angle of grabbing.
- Fix the grabbable bug for the cylinder panel when the user is close to the panel. When the user is very close to the panel, i.e., the center of the cylinder is behind the user, the grabbable system does not work well for rotation.
- Fix compatibility issues with Android Studio Ladybug.