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, please refer to the release notes.

Starting from version 4, the previously well-known EasyAR SDK has been given a new name: EasyAR Sense. EasyAR Sense provides the ability to perceive the real world. On Unity, the EasyAR Sense Unity Plugin offers a wrapper for EasyAR Sense, making it easier for developers to utilize the capabilities of EasyAR Sense in Unity.

Version 4.6.5

Release date: 2024-12-25

EasyAR Sense Unity Plugin 4.6.5 bypasses a potential Unity bug.

This will be the last release version 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.

The detailed updates are as follows:

  • 🩹 Bypasses a potential Unity 6 URP 17 render graph bug, which could cause unpredictable rendering effects on Windows DX11

Version 4.6.4

Release date: 2024-12-17

EasyAR Sense Unity Plugin 4.6.4 fixes display issues with dense spatial mapping and provides 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 issues when using dense spatial mapping
  • 🐛 Fixed error logs for generated collision meshes when using dense spatial mapping

Version 4.6.3

Release date: 2023-10-13

EasyAR Sense Unity Plugin 4.6.3 fixes several issues and provides compatibility when using URP in Unity 2023.

The detailed updates are as follows:

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

Version 4.6.2

Release date: 2023-04-03

EasyAR Sense Unity Plugin 4.6.2 fixes some bugs.

The detailed updates are as follows:

  • 🐛 Fix the display issue of dense spatial map mesh in linear color space
  • 🩹 Workaround for the potential crash issue of the Camera_CustomCamera sample on Android in Unity 2022.2 and 2023.1 (and possibly other versions), where it appears there is a bug in Unity's JNI part in these versions

Version 4.6.1

Release date: 2023-03-24

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

The detailed updates are as follows:

  • ⬆️ Update Sense to 4.6.1.10366
  • 🐛 Fix the issue where dense mesh displays incorrectly in certain special cases when using a custom camera

Version 4.6.0

Release date: 2023-02-13

EasyAR Sense Unity Plugin 4.6.0 brings many optimizations and improvements, mainly focusing on the following aspects:

  1. Added native Apple silicon support

    We have been releasing Apple silicon libraries since EasyAR Sense 4.3. However, before Unity itself supported it, we had no way to make Unity recognize these libraries. In this new release, we introduced these libraries 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 in the plugin, which can be used to enable EasyAR Mega and other EasyAR functionalities. This change replaces the outdated Huawei Unity package, which is no longer usable in newer Unity versions. If you do not wish to use AR Engine, it can be easily disabled.

  3. Split AR Foundation and Nreal support into separate extension packages

    We separated AR Foundation and Nreal support from the main plugin package and turned them into extension packages. These features were initially added to the plugin package using conditional compilation. However, Unity's support for conditional compilation is not perfect, causing many obstacles for developers. Splitting them into extension packages also makes it easier to distribute support for devices like glasses. Many new devices using EasyAR will be released 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 AR Foundation 5.x package structure
  • ✨ Added UnityPackage class for easier access to package version and name in scripts
  • ✨ Added option to disable all custom cameras
  • ⚡ Optimized EasyAR Mega support
  • ⚡ Improved information when no frame source is available
  • ⚡ Optimized right-click menu
  • ⚡ Switched to new motion fusion interface
  • 🐛 Fixed target file loading getting stuck without error when file does not exist
  • 🐛 Fixed frame source being unusable in certain special cases
  • 🔥 Removed built-in Huawei official Unity plugin support (no longer maintained by the official)
  • 🔥 Removed deprecated interfaces and prefabs from versions earlier than 4.4
  • 🔥 Removed Universal architecture support 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.

The detailed updates are as follows:

EasyAR Sense Unity Plugin

  • 🚚 Moved EasyAR Settings to Unity Project Settings, settings asset will no longer be loaded as a resource
  • ✨ Added an option to validate the license key during the build process
  • ✨ Added an option to use color image input when using AR Foundation and some other components
  • ⚡ Optimized motion fusion when motion tracking status is unstable
  • ⚡ Optimized error messages when CloudRecognizer or CloudLocalizer fails to create
  • 🐛 Fixed the issue where MotionTrackerFrameSource.CheckAvailability could not complete on inactive GameObjects
  • ⬆️ ARCore: Updated ARCore SDK to 1.23.0
  • ⬆️ ARCore: Gradle version must be >= 5.6.4 when building with ARCore
  • 🔧 ARCore: A warning message will pop up when building with ARCore if the package contains only 32-bit applications
  • ⬆️ Updated Sense to 4.5.0

EasyAR Sense Unity Plugin Samples

  • 🔧 Disabled AR Foundation update attempts in fusion samples
  • 🔧 Modified the ImageTracking_CloudRecognition sample to better use the connection timeout parameter

Version 4.4.0

Release date: 2021-10-28

EasyAR Sense Unity Plugin 4.4.0 adds many new features and improvements, mainly focusing on the following aspects:

  1. Support for Unity AR Foundation

    EasyAR can now work with AR Foundation, which enhances the capabilities of both EasyAR and AR Foundation, allowing users to leverage the advantages of both. For example, while using EasyAR's sparse spatial map to locate devices in the real environment, users can utilize AR Foundation's exposed ARKit or ARCore capabilities, such as environmental probes.

    AR Foundation support is implemented through one of the flexible features of the underlying EasyAR Sense—custom camera. As a reference, it is now easier than ever to customize the plugin to support other AR frameworks.

  2. Support for Nreal glasses (AR glasses with VIO capability)

    EasyAR now supports Nreal glasses. Nreal support is implemented through one of the flexible features of the underlying EasyAR Sense—custom camera.

  3. Support for Unity Universal Render Pipeline (URP)

    Starting from this version, URP support will be built into the plugin.

  4. Support for EasyAR Cloud SpatialMap

    EasyAR Cloud SpatialMap provides a city-level AR cloud solution. EasyAR Sense Unity Plugin is one of the essential development tools for supporting EasyAR Cloud SpatialMap on the application side.

  5. New motion fusion feature

    As long as any motion tracking feature is available, EasyAR motion fusion can make the tracking of static images and objects more stable and continue tracking after the target leaves the camera's field of view. This new feature is not simply running motion tracking and image tracking simultaneously, as was possible in previous versions, but provides better tracking results by fusing the two tracking methods.

  6. New AR session creation process

    The creation of AR sessions and other AR components can now be completed using the GameObject menu, making it more flexible and convenient. Prefabs have been marked as obsolete and will be removed in future releases.

Detailed update content is 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 feature 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 features for creating AR sessions and other GameObjects
    • ✨ Added many useful GameObject preset menu items
    • 🔥 Prefabs are 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, with runtime strategy selection 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 is renamed to CameraDeviceFrameSource
    • 🚚 RenderCamera has been moved to the FrameSource GameObject
    • 🔧 The Camera in the AR session will be selected by the FrameSource at runtime
    • 🔧 MotionTrackerFrameSource will attempt to update the device support list from the server by default, with a timeout of 2s
    • ARCoreFrameSource & ARKitFrameSource gained the ability to control autofocus switching
  • ✨ Optimized AR session workload and interfaces
    • ✨ 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 relative object of camera movement when motion tracking is enabled 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 maps 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-time user experience
    • ✨ Added EasyARController.Initialize & EasyARController.Deinitialize interfaces to support manual initialization after startup
    • 🔧 Error prompts will be displayed if EasyAR library files fail to load
    • 🔧 Improved pop-up messages for failed license verification
  • ✨ Optimized the build process, especially the first-time user experience
    • ✨ Compile-time and load-time errors will be generated if the plugin package is not correctly imported by the Unity Package Manager
    • ✨ The build will fail if errors occur during the pre-build or post-build process
    • ✨ The selection of ARCore SDK will be automatically handled by default when using ARCore XR Plugin
    • ✨ Added the ability to check iOS usage descriptions during builds
    • 🔧 Assets/HiddenEasyAR will no longer be used in builds
  • ⚡ Improved 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 an issue where the tracking mode of MotionTrackerCameraDevice was not set correctly
  • 🔧 The camera's field of view will now be set to match the projection matrix
  • ⬆️ Updated Sense to 4.4.0

EasyAR Sense Unity Plugin Samples

  • ✨ Added new sample ARFoundation to demonstrate usage with Unity AR Foundation
  • ✨ Added new sample HuaweiAREngine to demonstrate usage 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 usage on Nreal eyewear
  • ✨ Added new sample MotionTracking_Fusion to demonstrate automatically selecting available frame sources at startup and manually switching during runtime within a single scene, supporting the maximum number of devices and enabling unique features of each AR framework on supported devices
  • 🔧 Modified FrameRecording sample to automatically record motion tracking sessions when motion tracking capability is available
  • 🚚 Renamed sample ImageTracking_MotionExtend to ImageTracking_MotionFusion to demonstrate new motion fusion capabilities
  • 🚚 Renamed sample Eyewear_ImageTracking to Eyewear_DeviceHasNoTracking to clarify the sample's 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: 2021-04-07

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

The detailed updates are as follows:

EasyAR Sense Unity Plugin

  • 🚀 Replaced 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 modifications to the XCode project's bitcode settings
  • ✨ iOS: Uses Sense's dynamic library framework, no longer requiring modifications to 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 the features used
  • ⬆️ ARCore: Replaced the ARCore SDK distributed with the plugin with the official ARCore SDK 1.6 version's aar file
  • ✨ ARCore: Added options to control ARCore usage, resolving conflicts with AR Foundation
  • 🔧 Merged menu items
  • ⬆️ Updated Sense to 4.3.0

EasyAR Sense Unity Plugin Samples

  • 🔥 Removed video playback workarounds prepared for older Unity versions
  • 🐛 Fixed custom camera sample failing to open the camera on certain Android devices

Version 4.2.0

Release date: 2021-01-25

EasyAR Sense Unity Plugin 4.2.0 adds InputFrameRecorder/InpuptFramePlayer support, which can be used for testing and debugging device runtime effects in the editor. At the same time, some bugs have been fixed, and the user experience has been enhanced.

The detailed updates are as follows:

EasyAR Sense Unity Plugin

  • ✨ Add InputFrameRecorder/InpuptFramePlayer support
  • ✨ Motion tracking calibration parameters will be updated from the server by default
  • 🚚 Reorganize files
  • ⚡ Simplify hit test calls
  • 🐛 Fix targets not being lost after tracker destruction
  • 🐛 Fix camera image rotation by 180 degrees in some cases
  • 🐛 Fix camera image colors in linear color space
  • ⬆️ Update Sense to 4.2.0

EasyAR Sense Unity Plugin Samples

  • ✨ Add FrameRecording sample to demonstrate the use of InputFrameRecorder/InpuptFramePlayer
  • ⚡ Optimize plane detection in motion tracking samples

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

  • ✨ Add complete documentation to plugin scripts
  • ✨ Detailed usage instructions and sample analysis documentation for the plugin are now available
  • ♻️ Rewrite CloudLocalizerFrameFilter to support single scan
  • 🐛 Fix the contamination of invert culling on other cameras in the scene when the camera image is flipped using ARHorizontalFlipMode.World
  • 🐛 Fix the display issue of image target gizmo on high dpi displays
  • 🐛 Fix the rotation of camera images with RGB/RGBA pixel types
  • ⬆️ Update Sense to 4.1.0

EasyAR Sense Unity Plugin Samples

  • ♻️ Rewrite the MotionTracking sample to demonstrate the plane detection feature of motion tracking
  • ♻️ Rewrite the ImageTracking_CloudRecognition sample to use new interface features
  • 🔧 Modify the ImageTracking_Targets sample to use horizontally and vertically placed image targets

Version 4.0.1

Release date: 2020-05-13

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

The detailed updates are as follows:

EasyAR Sense Unity Plugin

  • 🐛 Minor fixes
  • ⬆️ Update Sense to 4.0.1

EasyAR Sense Unity Plugin Samples

  • ♻️ Rewrite TargetOnTheFly sample to be more concise and stable

Version 4.0.0

Release date: 2019-12-30

EasyAR has grown into a big family. Starting from version 4, the EasyAR SDK that everyone is familiar with will be given a new name: EasyAR Sense. EasyAR Sense provides the ability to perceive the real world. This version includes all the features of 3.0.

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

As for Unity support, the EasyAR Sense Unity Plugin is a very thin wrapper that exposes the functionality of EasyAR Sense in Unity. All the code of the EasyAR Sense Unity Plugin is well-designed with good interfaces and is open source. You can directly use this plugin 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 been greatly improved, mainly in the following aspects:

  1. Coherent design evolution

    All the features and advantages of the EasyAR Sense 1/2/3 Unity plugins are retained 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

    The editor can display the gizmo of the image target, providing a better experience than the automatically generated mesh in edit mode in previous versions. Critical errors (such as license key verification failure) are displayed on the screen through pop-up messages to help debug. 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 the new features and how different algorithm combinations work. Added samples supporting AR glasses, pre-calibrated for two AR glasses: Shadow Creator Action One and EPSON BT-350. Many community questions about "how to use" are answered in these samples. Thanks for your feedback!

EasyAR Sense 4.0 offers three subscription models: free personal edition, monthly-paid professional edition, and customized enterprise edition.

Detailed information about features, pricing, payment methods, etc. can be found on the product page and price page.

The 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 such as 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 the local file system or web URLs
  • ✨ Component CameraImageRenderer: Camera image rendering can be turned off by disabling the 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 the 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
  • 🚀 Brought back 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 display, covering all samples
  • ✨ Added a sample showcasing AR glasses support
  • ✨ Added a sample demonstrating simultaneous use of surface tracking and image tracking
  • ✨ Added samples for obtaining camera image textures and controlling camera display
  • ✨ Added a sample modifying video aspect ratio (Unity VideoPlayer feature) to fit image targets
  • ✨ Added a sample demonstrating extended tracking from images
  • ♻️ Cloud recognition sample now uses local caching and stops cloud recognition during tracking to cover common usage scenarios
  • 🐛 Optimized the Coloring3D sample and fixed bugs