EasyAR Sense Unity Plugin release notes
We are pleased to announce the release of EasyAR Sense Unity Plugin 4000. This version marks EasyAR's comprehensive API support and up-to-date device compatibility, with more frequent releases going forward.
Download EasyAR Sense Unity Plugin 4000 to enjoy these new features and improvements.
History versions
Version 4001.0.0
Release date: 2026-03-10
- 🐛 Fixed numerical issues in native-to-Unity pose transformation. This issue could cause brief pose jumps when using Mega on certain devices, leading to rapid flickering or jittering of content. This fix may also resolve other similar potential issues.
- 🔧 Adjusted interfaces of MegaTrackerFrameFilter to accommodate EasyAR Sense interface changes
- ⬆️ Updated EasyAR Sense to 4.8.0
Version 4000.0.1
Release date: 2025-11-14
- 🐛 Fix: Resolved potential runtime
AndroidJavaExceptioncaused by missing static methods (loadLibraries,setupActivity) in minified Android builds, which could prevent EasyAR from functioning.
Version 4000.0.0
Release date: 2025-10-20
Starting with this version, EasyAR Sense Unity Plugin will follow the package versioning (using Semantic Versioning) required by Unity. Therefore, version numbers will differ from EasyAR Sense, and release frequency may vary. This plugin version includes EasyAR Sense 4.7.0 official release.
EasyAR Sense Unity Plugin 4000.0.0 brings significant changes, primarily in these areas:
Unity and AR Foundation compatibility changes
From this version, EasyAR Sense Unity Plugin will only support Unity 2021.3 and newer. Unity 6 support is now complete. AR Foundation support has been merged into the plugin package, and this version will only support AR Foundation 5 and newer, with greatly simplified usage. If AR Foundation components are added to a scene, scene configuration and script code can remain unchanged regardless of whether AR Foundation is ultimately used.
Up-to-date headset support, adding compatibility with multiple OST/VST headsets
After years of refinement with industry partners, EasyAR's headset support has been standardized. You can now extend EasyAR Sense Unity Plugin to support third-party headset devices (may require data interfaces from headset manufacturers). This version includes built-in support for Apple Vision Pro and XREAL Air2 Ultra, while supporting Pico 4 Ultra Enterprise and Rokid AR Studio through EasyAR Sense Unity Plugin extension packages. You can also obtain support extension packages for other devices (e.g., Xrany) from EasyAR's partners.
Improved Unity component interfaces, significantly optimized ARSession workflow
This is the first version to fully encapsulate EasyAR Sense functionality through Unity components. ARSession has been extensively optimized and rewritten. You can now easily determine device or feature support, and start/stop ARSession at runtime to switch between ARSessions or different AR features. Additionally, you can use ARSessionFactory to create ARSession and related components at runtime. This version also adds inertial navigation and 3DoF camera features, primarily designed for EasyAR Mega but usable independently.
Added multiple development and diagnostic tools
This version introduces brand-new EIF recording and playback functionality. While EIF recording/playback was available in previous versions, using EIF has never been easier. You can now directly play eif files in the Unity Editor using the Session Validation Tool diagnostic tool to drive your scene—whether image tracking, spatial mapping, or EasyAR Mega—replicating device behavior on your computer. The runtime diagnostic panel (EasyAR Diagnostics Panel) allows easy eif recording activation within apps, or toggling key status information displays for ARSession and its components. Additionally, all samples have been rewritten to show ARSession status and eif recording buttons for convenience.
Full public release of EasyAR Mega tools
This version integrates Mega Studio 2.12. Future plugin updates will be more frequent, with Unity-side Mega tools gradually merged into the plugin and released alongside regular updates. Beyond previous pre-release updates, this version enables inertial navigation support by default, significantly expanding EasyAR Mega device compatibility. It also includes support for the latest EasyAR Mega Landmark service. Apply for EasyAR Mega usage via the EasyAR website page.
Detailed updates below:
Unity and AR Foundation Compatibility Changes:
- 🔧 Unity: Supports Unity 2021.3 and newer (including Unity 2022.x/Unity 6.x)
- 🔥 Removed support for Unity 2019/Unity 2020
- 🔥 Removed gradle version detection for Unity 2019
- 🔥 Removed option
DisableARCoreAREnginefor Unity 2019
- ✨ Unity 6: Full support for Unity 6
- ✨ Supports URP 17+ and Render Graph
- 🐛 Fixed: ARCore failure caused by ClassLoader behavior change in Unity 6
- 🐛 Fixed: Camera rendering failure when Render Scale is not 1
- 🐛 Unity 6 BUG: Visual glitches and artifacts are visible on iOS/Mac devices. This issue occurs only when camera texture access is required. We added partial mitigations but cannot fully resolve it. Reported to Unity, see Unity Issue UUM-87787. For Unity 6.2 and above, this can be avoided by setting Render Scale in the Universal Render Pipeline Asset to a value outside 0.96-1.05.
- 🐛 Unity 6 BUG: Rendering is not correct on Windows DX11. We added mitigations in Unity 6.0-6.1. Verified fixed in Unity 6.2.
- ✨ AR Foundation: Supports AR Foundation 5 and newer, greatly simplifying usage
- ✨ AR Foundation support is now integrated into the plugin package, no longer requires separate import (can be disabled via config option if needed)
- ✨ Supports reusing
Unity.XR.CoreUtils.XROriginas the origin for ARSession, supports reusing XROrigin's Camera - ✨ Added
Unity XR Auto Switchconfig option to handle switching Unity XR (including AR Foundation) objects by default - ✨ ARSession created via EasyAR menu automatically includes and enables AR Foundation support by default
- ✨ Most samples have added AR Foundation support (AR Foundation itself requires manual import and correct configuration)
- 🔧 ARCore and ARKit can be controlled individually, including priority between EasyAR's built-in ARCore/ARKit and AR Foundation's ARCore/ARKit
- 🔥 Removed support for AR Foundation 4
- 🔥 Removed support for ARSessionOrigin, only XROrigin is supported
- 🔥 Removed proxy for executing AR Foundation's ARCore installation flow
- ✨ Fully compatible with input system package
Up-to-date headset support, added support for multiple OST/VST headsets:
- 🚀 Head-mounted display interface is stable, supporting third-party access
- ✨ Support third-party device access (requires headset manufacturers to provide specific data interfaces)
- ✨ Support XROrigin and XR Interaction Toolkit
- ✨ Simplified and unified all headset samples, zero code, and support feature switching
- ✨ Support fisheye camera input
- ✨ Support custom camera input 3DOF data
- ✨ Added menu function: Extensions, consolidating all extension menu items
- 🐛 Fixed rendering anomalies when running DenseSpatialMap on some headsets
- 🔥 Removed legacy glasses samples like ActionOne and BT350
- ✨ Built-in support for Apple Vision Pro
- ✨ Support Metal, RealityKit, and Hybrid modes
- ✨ Support visionOS >= 2.0, support visionOS 26®
- ✨ Built-in support for XREAL Air2 Ultra (requires XREAL SDK >= 3.1)
- ✨ No longer need to import a separate support package
- ⚡ Optimized performance on XREAL
- 🔥 Removed XREAL Light support
- ✨ Distribute support for other devices like Pico and Rokid via EasyAR Sense Unity Plugin extensions
- ✨ Provide a reference template
com.easyar.sense.ext.hmdtemplatefor third-party device integration - ✨ Support Pico 4 Ultra Enterprise (requires PICO Unity Integration SDK >= 3.1)
- ✨ Support Rokid AR Studio (requires Rokid Unity OpenXR Plugin >= 3.0.3)
- ✨ These extensions will support multiple future versions of EasyAR Sense Unity Plugin
- ✨ Provide a reference template
- ✨ Support EasyAR XR License
- 🔧 Using EasyAR on headsets requires an EasyAR XR License and initial internet connection (trial requires connection each time)
Improve Unity component interfaces, greatly optimize ARSession workflow:
- 🚀 Enhance Unity component-level encapsulation
- ✨ Improve scene components to provide all EasyAR Sense functionalities
- 🔥 Remove all EasyAR Sense layer interfaces wrapped via components
- 🔥 Remove all internal interfaces
- ✨ ARSession: Rewritten with significantly optimized workflow
- ✨ Support starting and stopping sessions at any time
- ✨ Support automatic session startup control
- ✨ Support switching session functions and input sources without black screen
- ✨ Simplify device capability checks, provided through a unified interface
- ✨ Update device support lists for MotionTracker, ARCore, and AR Engine during startup
- ✨ Support automatic session restart after device list updates
- ✨ Support obtaining detailed session failure information
- ✨ Add session internal state self-check
- 🔥 Remove ARComponentPicker, its functionality replaced by other session workflows
- 🔥 Prevent multiple ARSessions from running simultaneously
- ✨ ARSessionFactory: Provide runtime creation of ARSession and related components
- ✨ Support creating sessions at runtime via ARSessionFactory identical to editor menus
- ✨ Add Frame Source sorting functionality (includes menu item)
- ✨ FrameSource: Add inertial navigation (INS) and 3DoF support
- ✨ Add
InertialCameraDeviceFrameSourceto support inertial navigation - ✨ Add
ThreeDofCameraDeviceFrameSourceto support 3DoF camera - ✨ Add menu function:
Frame Source by Transform Type, providing a list of all built-in FrameSources - ⚡ Optimize Inspector options
- ✨ Add
- ✨ Other interface adjustments and feature updates
- ✨ Add functionality to create ImageTarget using Texture2D
- ✨ Add
ImageMaterialfor rendering image-type data (camera feed, Target image, etc.) - ✨ Add
ActiveControllerto control GameObject active state, unifying related control logic - ✨ Add functionality to simulate screen rotation on desktop
- ✨ Add
XROriginChildControllerto control behavior of objects under Session origin - 🔥 Remove
WorldRootController - 🔧 Split Sparse Spatial Map interface into separate functional components: Builder and Tracker
- 🔧 Adjust
EasyARControllerto provide application/system-level static functions - 🔧 Unify Target component interfaces
- 🔧 Unify interfaces for services to access data
Added multiple development and diagnostic tools:
- 🚀 Added editing-time diagnostic tool: Session Validation Tool
- ✨ Simplifies playing eif in any scenario
- ✨ Supports controlling eif playback flow
- ✨ Supports controlling session flow
- 🚀 Added runtime diagnostics panel: EasyAR Diagnostics Panel
- ✨ Added Developer Mode toggle. By default, tap the screen 8 times to enable/disable the Diagnostics Panel, simplifying eif recording and issue feedback for online apps
- ✨ Supports custom Developer Mode toggle, enabling/disabling the Diagnostics Panel using custom interactions
- ✨ Supports controlling eif recording
- ✨ Supports controlling session information display
- ✨ Supports controlling eed recording
- ✨ Added brand-new EIF recording and playback functionality
- ✨ FrameRecorder is automatically assembled into ARSession, eliminating the need for manual selection
- ✨ FrameRecorder defaults to automatically generating filenames to support scriptless usage
- ✨ FramePlayer supports seeking and speed adjustment for data recorded in the new format, with reduced file size
- 🔧 Supports driving scenes and AR features using eif on PC (Not a new feature)
- ✨ Added DiagnosticsController to unify and optimize diagnostic functionality
- ✨ Added hierarchical information display and control; by default, all error and warning messages are displayed via UI
- ✨ Added functionality to display key status information of ARSession and its components; by default, shown via UI and updated every frame
- 🔧 Uses diagnostic features to simplify gathering issue feedback information
- 🔥 Removed GUIPopup
- 🔧 Optimized abnormal state behavior and error message display
- 🔧 Optimized error messages when no frame source is available
- 🔧 In URP environments using EasyAR (not AR Foundation or headset rendering) for camera images, an error is thrown and ARSession execution is interrupted if RendererFeature is not properly configured
- 🔧 Modified the default Active control strategy for Origin; content sticks to the screen rather than disappearing when tracking is lost
- 🔧 When using trial products on custom cameras or headsets, all content is hidden upon reaching the time limit to avoid misjudging effects
- 🔧 Optimized configuration page content and options
- ✨ Supports selecting variants of the EasyAR Sense library
- 🔒 Application permission section: except for camera permissions, other permissions are no longer editable and are determined by the EasyAR Sense library variant and whether Mega is enabled
- 🔧 Features and server configurations are grouped by EasyAR functionality
- 🔧 Centralized management of third-party AR SDK configurations
- 🔧 Centralized management of Workaround configurations for Unity
EasyAR Mega Tools Fully Public:
- 🚀 Fully public, synchronized updates
- ✨ Integrated release of Mega Studio 2.12
- 🔧 The Unity-side Mega tools will gradually be merged into the plugin. Future releases will only provide the latest integrated package, merged with regular updates of the EasyAR Sense Unity Plugin
- 🔧 EasyAR Mega still requires application and approval via the EasyAR website page before use
- ✨ Added support for easyar mega landmark
- ✨ Added support for 5DOF inertial navigation (enabled by default), significantly expanding device compatibility for EasyAR Mega
- ✨ Added support for accessing Mega services using API token
- 🔧 Optimized Mega performance and development experience (included in past 4.7.x updates)
- ✨ Support for 3DOF pure rotation mode and 0DOF mode (disabled by default)
- ✨ Added EditorCameraDeviceFrameSource for editor diagnostics, preventing incorrect mobile execution due to incomplete sample copying
- ✨ When recording legacy eif data using Mega, FrameRecorder will automatically generate .eif.json files
- 🔧 Replaced remote debugging fallback options with LocationInputMode
- 🔧 Split no-tracking mode into a standalone component; typically no longer requires attention
- 🔧 Added BlockRootSource option; forgetting to set BlockRoot in default configuration will now throw an error
- 🔧 Adjusted default behavior when locating multiple blocks to ensure multiple blocks aren't used by default
- 🔧 Modified some interface names
- 🔧 Throws clearer exceptions when Session includes Mega but cannot be used
- 🔧 Adjusted the minimum QualityLevel for Mega-supported MotionTracker to Limited
- 🐛 Fixed CloudLocalizerStatus.WakingUp state not being correctly escaped, causing runtime errors
- 🔧 For other optimizations and changes, refer to the EasyAR Sense update log
Sample Rewriting and Optimization:
- ✨ Rewrite all samples
- ✨ Compatible with different Input System configurations
- ✨ Compatible with URP17+
- ✨ Compatible with using AR Foundation
- 🔧 Compatible without using AR Foundation
- 🔧 Retain a few samples without AR Foundation support
- ⚡ Optimize scripts and interface calls
- 🚚 Some samples have been renamed
- 🔧 Replace models, videos, and other resources within samples
- ⚡ Reduce usage of streaming assets, importing only in samples showcasing specific features
- ✨ Create ImageTarget using Texture2D
- ✨ Add new features and interface demonstrations
- ✨ Add Workflow_ARSession sample for learning session basics and device support
- ✨ Add Workflow_FrameSource_ExternalImageStream sample, using video as a custom camera (not for head-mounted displays)
- ✨ Add Combination_BasedOn_MotionTracking sample for learning feature usage, switching, and AR Foundation switching when motion tracking is available
- ✨ Add Combination_BasedOn_AppleVisionPro sample to demonstrate feature usage and switching on Apple Vision Pro
- ✨ Add Combination_BasedOn_Xreal sample to demonstrate feature usage and switching on XREAL devices
- ✨ Add multiple Mega samples (included in past 4.7.x updates)
- ✨ Add functionality to switch camera resolution and torch mode in Workflow_FrameSource_CameraDevice
- 🔥 Remove standalone AR Foundation samples, as their functionality is included in others
- 🔥 Remove FrameRecording sample, its functionality is included elsewhere
- 🔥 Remove MotionTracking_Fusion sample, its functionality is in Combination_BasedOn_MotionTracking
- 🔥 Remove SurfaceTracking_ImageTarget sample, feature combinations can still easily achieve this
- 🔥 Remove Camera_CustomCamera sample, can still be implemented if needed
- 🔥 Remove ancient glasses samples like ActionOne and BT350
- ✨ Simplify eif recording and playback usage
- ✨ Add eif recording button to all samples; recorded eif files can be used within the editor
- ✨ Rewrite launcher, add sample descriptions
- 🐛 Fix issue where scenes loaded via launcher appeared too dark
EasyAR and Third-Party AR Feature Integration:
- ⬆️ Update EasyAR Sense to official version 4.7.0
- ⬆️ Update EasyAR AR Engine Interop
- ⬆️ Update ARCore SDK to 1.46.0
- 🔧 Disable AR Engine on phones where it cannot run reasonably
- 🐛 Fix ARCore failure caused by ClassLoader behavior change in Unity 6