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.

  1. Support for Unity Universal Render Pipeline (URP)

Starting from this version, URP support will be built-in within the plugin.

  1. 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.

  1. 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.

  1. 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 function to optimize image and 3D object tracking when motion tracking is available
  • 🚀 Added CloudSpatialMapLocalizerFrameFilter to support EasyAR Cloud SpatialMap
  • 🚀 Introduced new methods for creating AR sessions and other AR components
    • ✨ Added GameObject menu items organized by function for creating AR sessions and other GameObjects
    • ✨ Added many useful GameObject preset menu items
    • 🔥 Prefab is marked as obsolete and will be removed in future releases
  • ✨ Added more frame sources to expand AR framework and device support
    • ✨ Added ARCoreFrameSource & ARKitFrameSource & MotionTrackerFrameSource to replace VIOCameraDeviceUnion. Runtime strategy selection is replaced by the more flexible ARComponentPicker
    • ✨ Added ARFoundationFrameSource to support Unity AR Foundation
    • ✨ Added HuaweiAREngineFrameSource to support Huawei AR Engine
    • 🔥 VIOCameraDeviceUnion is marked as obsolete and will be removed in future releases
    • 🚚 VideoCameraDevice renamed to CameraDeviceFrameSource
    • 🚚 RenderCamera was moved to the FrameSource GameObject
    • 🔧 The Camera in the AR session will be selected at runtime by the FrameSource
    • 🔧 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 on/off
  • ✨ Optimized AR session workload and interfaces
    • ✨ Added 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 relative object for camera motion when motion tracking is available at runtime
    • ✨ Added ARSession.TrackingStatus to get the quality of device motion tracking
    • ✨ Added ARSession.State & ARSession.StateChanged to query the state of ARSession
  • ✨ Optimized center mode handling
    • 🔧 The available center modes in a session will be determined by the frame source selected at runtime
    • 🔧 Spatial map can be used in all center modes
    • 🔥 Removed ARCenterMode.ExternalControl, its functionality 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 interfaces to support manual initialization after startup
    • 🔧 If the EasyAR library files fail to load, an error will be shown
    • 🔧 Improved pop-up information for license validation failure
  • ✨ Optimized the build process, especially the first-use experience
    • ✨ If the plugin package is not imported correctly by the Unity Package Manager, compile-time and load-time errors will be generated
    • ✨ Build will fail if errors occur during pre-build or post-build processes
    • ✨ When using ARCore XR Plugin, ARCore SDK selection will be handled automatically by default
    • ✨ Added functionality to check iOS usage description in builds
    • 🔧 Assets/HiddenEasyAR will no longer be used in builds
  • ⚡ Optimized tracking stability for sparse spatial maps
  • 🔧 SurfaceTrackerFrameFilter can be used with motion tracking devices
  • 🐛 Fixed an issue where target controller events might trigger after component destruction in certain cases
  • 🐛 Fixed MotionTrackerCameraDevice tracking mode not being set correctly
  • 🔧 Camera field of view will now be set to be consistent with the projection matrix
  • ⬆️ Updated Sense to 4.4.0

EasyAR Sense Unity Plugin Samples

  • ✨ Added new sample ARFoundation to demonstrate integration with Unity AR Foundation
  • ✨ Added new sample HuaweiAREngine to demonstrate integration with Huawei AR Engine
  • ✨ Added new sample Eyewear_Nreal_SpatialMap_Building to demonstrate spatial map usage on Nreal eyewear
  • ✨ Added new sample Eyewear_Nreal_ImageTracking_InWorld to demonstrate image tracking on Nreal eyewear
  • ✨ Added new sample MotionTracking_Fusion to demonstrate automatic selection during startup and manual switching at runtime among available frame-sources, supporting the widest range of devices and enabling unique features per AR framework on compatible devices
  • 🔧 Modified FrameRecording sample to automatically record motion tracking sessions when available
  • 🚚 Renamed sample ImageTracking_MotionExtend to ImageTracking_MotionFusion to showcase new motion fusion capabilities
  • 🚚 Renamed sample Eyewear_ImageTracking to Eyewear_DeviceHasNoTracking to clarify its 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 numerous improvements
  • ✨ Adds pop-up messages for critical error situations (can be disabled on EasyARController)
  • ✨ Components: Most components can use the Unity component's enabled property to control start/stop
  • ✨ Component ARSession: AR entry point, controls center mode, supports external devices like custom cameras and AR glasses
  • ✨ Component ARAssembly: Demonstrates the assembly process of EasyAR Sense's componentized API, supporting all EasyAR Sense components
  • ✨ Component ImageTargetController: Improved support for different input types; can load images and .etd files from local filesystems or web URLs
  • ✨ Component CameraImageRenderer: Camera image rendering can be disabled by deactivating this component
  • ✨ Component VIOCameraDeviceUnion: Motion tracking, automatically selects and uses available ARKit, ARCore, or EasyAR motion tracking capabilities on the device
  • ✨ Scene: Added target gizmo to display target details in the Unity Editor
  • ✨ Asset: Added global service configuration and gizmo control options
  • ✨ Window: Added window for generating image target data (.etd files)
  • ✨ Window: Added menu shortcuts to the license key setup interface and other global configurations
  • 🐛 Fixed one-frame delay issue in target tracking
  • 🐛 Fixed blocking target loading, reducing target loading time
  • 🐛 Fixed target size retrieval
  • 🐛 Many other improvements and bug fixes
  • ⬆️ Updated Sense to 4.0.0

Samples of Unity Plugin for EasyAR Sense 4.0.0

  • 🚀 Added many samples demonstrating Sense features and interface usage
  • 🚀 Restored all Sense 2.3 samples
  • 🚀 Added samples showcasing new features including sparse spatial map, dense spatial map, motion tracking, and samples demonstrating how these features work alongside other components like image tracking
  • ✨ Added a sample launcher to load all samples
  • ✨ Added on-screen component status information across all samples
  • ✨ Added sample demonstrating AR glasses support
  • ✨ Added sample combining surface tracking with image tracking
  • ✨ Added sample for obtaining camera image textures and controlling camera display
  • ✨ Added sample modifying video aspect ratio (Unity VideoPlayer feature) to fit image targets
  • ✨ Added sample demonstrating extended image tracking
  • ♻️ Cloud recognition sample now uses local caching and pauses cloud recognition during tracking to cover common usage scenarios
  • 🐛 Optimized coloring3D sample and fixed bugs