Table of Contents

EasyAR Sense Unity Plugin version 4 release notes

Note

The latest EasyAR Sense Unity Plugin version is 4000.0. For more information, see Release notes.

Starting from version 4, what was previously known as the EasyAR SDK has been given a new name: EasyAR Sense. EasyAR Sense provides perception capabilities of the real world. On Unity, the EasyAR Sense Unity Plugin provides a wrapper for EasyAR Sense, enabling developers to easily utilize EasyAR Sense's capabilities within Unity.

Version 4.6.5

Release date: 2024-12-25

EasyAR Sense Unity Plugin 4.6.5 works around a possible Unity bug.

This will be the last release supporting Unity 2019, Unity 2020, and AR Foundation 4. Starting from version 4.7, EasyAR Sense Unity Plugin will only support Unity 2021.3+ and AR Foundation 5+. Support for numerous headsets and glasses will also arrive simultaneously.

Detailed updates are as follows:

  • 🩹 Works around a possible Unity 6 URP 17 render graph bug that could cause rendering to become unpredictable on Windows DX11

Version 4.6.4

Release date: 2024-12-17

EasyAR Sense Unity Plugin 4.6.4 fixed the display issue with dense spatial map and provided compatibility with Unity 6+, URP 17+, and AR Foundation 5/6+.

Detailed updates are as follows:

  • ✨ Added Render Graph support for Unity 6 (URP 17+)
  • ✨ Added XROrigin support for AR Foundation 5/6
  • 🐛 Fixed mesh tearing issue when using dense spatial map
  • 🐛 Fixed erroneous logs generated by collision meshes when using dense spatial map

Version 4.6.3

Release date: 2023-10-13

EasyAR Sense Unity Plugin 4.6.3 fixed several issues and provided compatibility when using URP in Unity 2023.

The detailed updates are as follows:

  • ✨ Adds URP 15 compatibility
  • 🐛 Fixed the camera facing the wrong direction when only using AR Engine

Version 4.6.2

Release date: 2023-04-03

EasyAR Sense Unity Plugin 4.6.2 fixes several bugs.

Detailed updates are as follows:

  • 🐛 Fixed display issues of dense spatial map mesh in linear color space
  • 🩹 Worked around a potential crash issue on Android in the Camera_CustomCamera sample for Unity 2022.2 and 2023.1 (and possibly others), where it appears a bug exists in Unity's JNI part for these versions

Version 4.6.1

Release date: March 24, 2023

EasyAR Sense Unity Plugin 4.6.1 adds some minor features and fixes several bugs.

The detailed updates are as follows:

  • ⬆️ Update Sense to 4.6.1.10366
  • 🐛 Fix the issue where the dense mesh displayed at an incorrect position when using a custom camera under certain specific conditions.

Version 4.6.0

Release date: 2023-02-13

The EasyAR Sense Unity Plugin 4.6.0 brings numerous optimizations and improvements, primarily focused on these areas:

  1. Added native Apple silicon support We released Apple silicon libraries starting from EasyAR Sense 4.3. However, until Unity itself provided support, we couldn't make Unity recognize these libraries. In this new release, we integrate this library into Unity to support recent Unity editor versions compiled for Apple silicon.
  2. Added built-in AR Engine support We added built-in AR Engine support within the plugin, enabling the capabilities used to support EasyAR Mega and other EasyAR features. This change replaces the outdated Huawei Unity package, which is unusable in new Unity versions. You can easily disable it if you don't wish to use AR Engine.
  3. Split AR Foundation and Nreal support into separate extension packages We separated AR Foundation and Nreal support from the main plugin package and made them extension packages. These features were initially integrated into the plugin package using conditional compilation. However, Unity's support for conditional compilation isn't perfect, leading to many obstacles for developers. Splitting them into extension packages also makes distributing support for devices like glasses easier. Many new devices using EasyAR will emerge in the future. Detailed updates are as follows:
  • ✨ Added native Apple silicon support
  • ✨ Added built-in AR Engine support (available for all Unity versions)
  • 🚚 Split and optimized Nreal (>= 1.6) support
  • 🚚 Split and optimized AR Foundation (>= 4.1.3) support
  • ✨ Added compatibility with the AR Foundation 5.x package structure
  • ✨ Added the UnityPackage class for easier script access to package version, name, etc.
  • ✨ Added an option to disable all custom cameras
  • ⚡ Optimized EasyAR Mega support
  • ⚡ Optimized information when no frame source is available
  • ⚡ Optimized the right-click menu
  • ⚡ Switched to using the new motion fusion interface
  • 🐛 Fixed target file loading getting stuck without error when the file doesn't exist
  • 🐛 Fixed a specific scenario where the frame source becomes unusable
  • 🔥 Removed built-in support for the official Huawei Unity plugin (no longer maintained by the vendor)
  • 🔥 Removed deprecated interfaces and prefabs from versions earlier than 4.4
  • 🔥 Removed support for Universal architecture when building for iOS
  • ⬆️ Updated Sense to 4.6.0

Version 4.5.0

Release date: 2022-03-04

EasyAR Sense Unity Plugin 4.5.0 adds some small features, fixes some bugs, and enhances the user experience. According to Google's policy, this version updates the ARCore SDK to 1.23.0 and adds stricter checks during the build process.

Detailed update content is as follows:

EasyAR Sense Unity Plugin

  • 🚚 Move EasyAR Settings to Unity Project Settings, settings asset will no longer be loaded as a resource

  • ✨ Add option to verify license key during the build process

  • ✨ Add option to use color image input when using AR Foundation and some other components

  • ⚡ Optimize motion fusion when motion tracking status is unstable

  • ⚡ Optimize error messages when CloudRecognizer or CloudLocalizer creation fails

  • 🐛 Fix issue where MotionTrackerFrameSource.CheckAvailability could not complete on a non-active GameObject

  • ⬆️ ARCore: Update ARCore SDK to 1.23.0

  • ⬆️ ARCore: Gradle version must be >= 5.6.4 for builds using ARCore

  • 🔧 ARCore: A warning message will pop up in builds using ARCore if packaging a 32-bit only application

  • ⬆️ Update Sense to 4.5.0 EasyAR Sense Unity Plugin Samples

  • 🔧 Disable AR Foundation update attempts in fusion samples

  • 🔧 Modify the ImageTracking_CloudRecognition sample to better utilize connection timeout parameters

Version 4.4.0

Release date: 2021-10-28

EasyAR Sense Unity Plugin 4.4.0 adds many new features and improvements, primarily focused on these areas:

  1. Support for Unity AR Foundation EasyAR can now work alongside AR Foundation, enhancing the capabilities of both. This allows leveraging the strengths of both systems. For example, while using EasyAR's sparse spatial map to locate the device in the real environment, one can simultaneously utilize capabilities exposed by AR Foundation through ARKit or ARCore, such as environment probes.

AR Foundation support is implemented through one of EasyAR Sense's underlying flexible features: custom cameras. Using this as a reference, it is now easier than ever to customize the plugin to support other AR frameworks.

  1. Support for Nreal glasses (AR glasses with VIO capability) EasyAR now supports Nreal glasses. Nreal support is implemented through one of EasyAR Sense's underlying flexible features: custom cameras.

  2. Support for Unity Universal Render Pipeline (URP) Starting from this version, URP support will be built-in within the plugin.

  3. Support for EasyAR Cloud SpatialMap EasyAR Cloud SpatialMap provides city-scale AR cloud solutions. The EasyAR Sense Unity Plugin is one of the key development tools supporting EasyAR Cloud SpatialMap on the application side.

  4. Added motion fusion functionality As long as any type of motion tracking capability is available, EasyAR motion fusion makes the tracking of static images and objects more stable and allows tracking to continue even after the target leaves the camera's field of view. This new feature is not simply about simultaneously running motion tracking and image tracking as was possible in previous versions; it provides superior tracking results by fusing the two tracking methods.

  5. New AR Session creation workflow The creation of AR sessions and other AR components can now be done using the GameObject menu, offering greater flexibility and convenience. Prefabs are now marked as obsolete and will be removed in future releases.

Detailed updates are as follows:

EasyAR Sense Unity Plugin

  • 🚀 Added Unity AR Foundation support
  • 🚀 Added Unity Universal Render Pipeline (URP) support
  • 🚀 Added Nreal glasses support
  • 🚀 Added motion fusion to optimize image and 3D object tracking when motion tracking is available
  • 🚀 Added CloudSpatialMapLocalizerFrameFilter to support EasyAR Cloud SpatialMap
  • 🚀 Introduced a new way to create AR sessions and other AR components
    • ✨ Added feature-organized GameObject menu items for creating AR sessions and other GameObjects
    • ✨ Added many useful GameObject preset menu items
    • 🔥 prefabs have been marked obsolete and will be removed in a future release
  • ✨ Added more frame sources to extend AR framework and device support
    • ✨ Added ARCoreFrameSource & ARKitFrameSource & MotionTrackerFrameSource to replace VIOCameraDeviceUnion; runtime policy selection is replaced by the more flexible ARComponentPicker
    • ✨ Added ARFoundationFrameSource to support Unity AR Foundation
    • ✨ Added HuaweiAREngineFrameSource to support Huawei AR Engine
    • 🔥 VIOCameraDeviceUnion has been marked obsolete and will be removed in a future release
    • 🚚 VideoCameraDevice has been renamed to CameraDeviceFrameSource
    • 🚚 RenderCamera has been moved to the FrameSource GameObject
    • 🔧 The Camera in an AR session will be selected by FrameSource at runtime
    • 🔧 MotionTrackerFrameSource will try to update the device support list from the server by default, with a timeout of 2s
    • ARCoreFrameSource & ARKitFrameSource gained the ability to control autofocus
  • ✨ Optimized AR session workload and APIs
    • ✨ Added the ARComponentPicker component to select available frame sources and other components at runtime
    • ✨ Added ARSession.AvailableCenterMode to query all available center modes in a session
    • ✨ Added ARSession.Origin to get the object relative to camera movement when motion tracking is running
    • ✨ Added ARSession.TrackingStatus to get device motion tracking quality
    • ✨ Added ARSession.State & ARSession.StateChanged to query ARSession status
  • ✨ Optimized center mode handling
    • 🔧 The center modes available in a session will be determined by the frame source selected at runtime
    • 🔧 Spatial maps can be used in all center modes
    • 🔥 Removed ARCenterMode.ExternalControl; its function is replaced by FrameSource.IsCameraUnderControl == false
    • 🚚 Renamed ARCenterMode.WorldRoot to ARCenterMode.SessionOrigin
  • ✨ Optimized the initialization process, especially the first-use experience
    • ✨ Added EasyARController.Initialize & EasyARController.Deinitialize APIs to support manual initialization after startup
    • 🔧 If the EasyAR library file fails to load, an error prompt will be shown
    • 🔧 Improved the popup message for license verification failure
  • ✨ Optimized the build process, especially the first-use experience
    • ✨ If the plugin package is not imported correctly by Unity Package Manager, compile-time and load-time errors will be generated
    • ✨ If an error occurs during pre-build or post-build, the build will fail
    • ✨ When using ARCore XR Plugin, ARCore SDK selection will be handled automatically by default
    • ✨ Added a check for iOS usage descriptions in builds
    • 🔧 Assets/HiddenEasyAR will no longer be used in builds
  • ⚡ Optimized tracking stability for sparse spatial maps
  • 🔧 SurfaceTrackerFrameFilter can be used together with motion tracking devices
  • 🐛 Fixed an issue where target controller events might be triggered after the component is destroyed in some cases
  • 🐛 Fixed the tracking mode of MotionTrackerCameraDevice not being set correctly
  • 🔧 The camera field of view is now set to match the projection matrix
  • ⬆️ Updated Sense to 4.4.0

EasyAR Sense Unity Plugin Samples

  • ✨ Added new sample ARFoundation to show usage with Unity AR Foundation
  • ✨ Added new sample HuaweiAREngine to show usage with Huawei AR Engine
  • ✨ Added new sample Eyewear_Nreal_SpatialMap_Building to show how to use spatial maps on Nreal glasses
  • ✨ Added new sample Eyewear_Nreal_ImageTracking_InWorld to show how to use image tracking on Nreal glasses
  • ✨ Added new sample MotionTracking_Fusion to show automatic selection at startup and manual switching of available frame sources at runtime in a single scene, supporting the most devices and enabling unique features of each AR framework on supported devices
  • 🔧 Modified the FrameRecording sample to automatically record a motion tracking session when motion tracking is available
  • 🚚 Renamed sample ImageTracking_MotionExtend to ImageTracking_MotionFusion to show the new motion fusion feature
  • 🚚 Renamed sample Eyewear_ImageTracking to Eyewear_DeviceHasNoTracking to clarify the sample purpose
  • 🚚 Renamed sample MapLocalizing_Sparse to SpatialMap_Sparse_Localizing
  • 🚚 Renamed sample SpatialMap_Dense_BallGame to SpatialMap_Dense_BallGame
  • 🚚 Renamed sample SpatialMap_Sparse_ImageTarget to SpatialMap_Sparse_ImageTarget
  • 🚚 Renamed sample MapBuilding_Sparse to SpatialMap_Sparse_Building
  • 🚚 Renamed sample MapBuilding_Sparse_Dense to SpatialMap_Sparse_Dense_Building

Version 4.3.0

Release date: April 7, 2021

The EasyAR Sense Unity Plugin 4.3.0 organizes files using Unity package, simplifying configuration during packaging and resolving difficulties in plugin updates. Starting from this version, only Unity 2019.4 and later are supported.

Detailed updates are as follows:

EasyAR Sense Unity Plugin

  • 🚀 Replaces Asset Package with Unity Package, compatible with Unity 2019.4 and above. Older versions are no longer compatible

  • ✨ iOS: Automatically configures bitcode, no longer requiring modification of the Xcode project's bitcode settings

  • ✨ iOS: Uses Sense's dynamic library framework, no longer requiring modification of the Xcode project's framework settings

  • ✨ Android: Uses Sense's aar file, including proguard rule

  • ✨ Android: No longer uses the Android Manifest in the Plugins folder, allowing control over permission settings in the Manifest based on features used

  • ⬆️ ARCore: Replaces the ARCore SDK distributed with the plugin with the official ARCore SDK version 1.6 aar file

  • ✨ ARCore: Adds options to control ARCore usage, resolving conflicts with AR Foundation

  • 🔧 Merges menu items

  • ⬆️ Updates Sense to 4.3.0 EasyAR Sense Unity Plugin Samples

  • 🔥 Removes video playback workarounds prepared for older Unity versions

  • 🐛 Fixes custom camera sample failing to open camera on some Android devices

Version 4.2.0

Released: 2021-01-25

The EasyAR Sense Unity Plugin 4.2.0 adds InputFrameRecorder/InpuptFramePlayer support, which can be used to test and debug device runtime effects in the editor. It also fixes some bugs and enhances the user experience.

Detailed updates are as follows:

EasyAR Sense Unity Plugin

  • ✨ Added InputFrameRecorder/InpuptFramePlayer support

  • ✨ Motion tracking calibration parameters will be updated from the server by default

  • 🚚 Reorganized files

  • ⚡ Simplified hit test call

  • 🐛 Fixed targets not being lost after tracker destruction

  • 🐛 Fixed camera image rotation by 180 degrees in certain situations

  • 🐛 Fixed camera image color in linear color space

  • ⬆️ Updated Sense to 4.2.0 EasyAR Sense Unity Plugin Samples

  • ✨ Added FrameRecording sample to demonstrate the use of InputFrameRecorder/InpuptFramePlayer

  • ⚡ Optimized plane detection in the motion tracking sample

Version 4.1.0

Release date: 2020-07-16

EasyAR Sense Unity Plugin 4.1.0 adds some small features, fixes some bugs, and enhances the user experience.

The detailed updates are as follows:

EasyAR Sense Unity Plugin

  • ✨ Added complete documentation to plugin scripts

  • ✨ Detailed plugin usage instructions and sample analysis documentation are now available

  • ♻️ Rewrote CloudLocalizerFrameFilter to support single scans

  • 🐛 Fixed the issue where invert culling polluted other cameras in the scene when the camera image was flipped using ARHorizontalFlipMode.World

  • 🐛 Fixed the display issue of the image target gizmo on high-DPI monitors

  • 🐛 Fixed rotation for camera images with RGB/RGBA pixel types

  • ⬆️ Updated Sense to 4.1.0 EasyAR Sense Unity Plugin Samples

  • ♻️ Rewrote the MotionTracking sample to demonstrate the plane detection feature of motion tracking

  • ♻️ Rewrote the ImageTracking_CloudRecognition sample to use new interface features

  • 🔧 Modified the ImageTracking_Targets sample to use horizontally and vertically placed image targets

Version 4.0.1

Release date: May 13, 2020

EasyAR Sense Unity Plugin 4.0.1 adds some small features, fixes several bugs, and enhances the user experience.

The detailed updates are as follows:

EasyAR Sense Unity Plugin

  • 🐛 Minor fixes

  • ⬆️ Updated Sense to 4.0.1 EasyAR Sense Unity Plugin Samples

  • ♻️ Rewrote the TargetOnTheFly sample for more simplicity and stability

Version 4.0.0

Release date: 2019-12-30

EasyAR has grown into a large family. Starting from version 4, the EasyAR SDK known to everyone in the past will be given a new name: EasyAR Sense. EasyAR Sense provides the perception of the real world. This version includes all the features of 3.0.

EasyAR Sense is a standalone SDK. It does not rely on non-system components or tools like Unity3D, providing flexible, component-based APIs based on data flow.

Regarding Unity support, the EasyAR Sense Unity Plugin is a very thin wrapper used to expose EasyAR Sense functionality within Unity. All code for the EasyAR Sense Unity Plugin is well-designed with interfaces and is open source. You can use this plugin directly to quickly create AR experiences, or refer to the plugin code to use EasyAR Sense interfaces and features more flexibly and customly, or create your own Unity plugin.

The EasyAR Sense Unity plugin has received significant improvements, mainly focusing on these areas:

  1. Coherent design evolution All the features and advantages of the EasyAR Sense 1/2/3 Unity plugins are preserved in this version. This version of the plugin uses as many Unity features as possible, such as using OnEnable/OnDisable to control start/stop. Most EasyAR Sense features can work without writing scripts. All new features of EasyAR Sense 4.0 are supported, and many bugs have been fixed.
  2. Optimized editor experience Gizmos for image targets can be displayed in the editor, providing a better experience than the automatically generated meshes in edit mode in previous versions. Critical errors (such as license key verification failure) are displayed on screen via pop-up messages to aid debugging. In addition to the API, a Unity tool window is provided to generate image target data.
  3. More samples covering more detailed APIs Added samples demonstrating all new features and the combined work of different algorithms. Added samples supporting AR-enabled glasses, pre-calibrated for two models: Shadow Creator Action One and EPSON BT-350. Many "how-to" questions from the community are answered in these samples. Thanks for your feedback! EasyAR Sense 4.0 offers three subscription models: Free Personal, Monthly Professional, and Custom Enterprise.

Detailed information on features, pricing, payment methods, etc., can be found on the Product Page and Pricing Page.

Detailed updates are as follows:

Unity Plugin for EasyAR Sense 4.0.0

  • 🚀 Supports all new features of EasyAR Sense 4.0.0: Sparse Spatial Map, Dense Spatial Map, and Motion Tracking
  • 🚀 Restores interface design and behavior similar to Sense 2.3, with many improvements
  • ✨ Adds pop-up messages for severe errors, which can be disabled on EasyARController
  • ✨ Components: most components can use the enabled property of Unity components to control start/stop
  • ✨ Component ARSenssion: AR entry point, controls center mode, and supports external devices such as custom cameras and AR glasses
  • ✨ Component ARAssembly: shows the assembly process of the EasyAR Sense componentized API and supports all EasyAR Sense components
  • ✨ Component ImageTargetController: improves support for different input types and can load images and .etd files from the local file system or web URLs
  • ✨ Component CameraImageRenderer: camera image rendering can be turned off by disabling this component
  • ✨ Component VIOCameraDeviceUnion: motion tracking, automatically selecting available ARKit, ARCore, or EasyAR motion tracking capabilities on the device
  • ✨ Scene: adds target gizmo to show target details in the Unity Editor
  • ✨ Asset: adds global service configuration and gizmo control options
  • ✨ Window: adds a window for generating image target data, .etd files
  • ✨ Window: adds menu entries to jump to the license key settings page and other global configuration
  • 🐛 Fixes a one-frame delay in target tracking
  • 🐛 Fixes blocking target loading and reduces target loading time
  • 🐛 Fixes target size retrieval
  • 🐛 Many other improvements and bug fixes
  • ⬆️ Updates Sense to 4.0.0

Samples of Unity Plugin for EasyAR Sense 4.0.0

  • 🚀 Adds many sample to demonstrate Sense features and API usage
  • 🚀 Adds back all Sense 2.3 sample
  • 🚀 Adds sample demonstrating new features, including Sparse Spatial Map, Dense Spatial Map, and Motion Tracking, and sample showing how these features work with other components such as Image Tracking
  • ✨ Adds a sample launcher that can load all samples
  • ✨ Adds on-screen component status information, covering all sample
  • ✨ Adds sample demonstrating AR glasses support
  • ✨ Adds sample using Surface Tracking and Image Tracking together
  • ✨ Adds sample for obtaining camera image texture and controlling camera display
  • ✨ Adds sample for adapting modified video aspect ratio, Unity VideoPlayer feature, to image target
  • ✨ Adds sample demonstrating tracking from image extension
  • ♻️ Cloud recognition sample now uses local cache and stops cloud recognition while tracking, covering common usage scenarios
  • 🐛 Optimizes coloring3D sample and fixes bugs