EasyAR Sense Unity Plugin exposes EasyAR Sense features into Unity as a plugin. It can work with or without AR Foundation. It can also work on Nreal Eyewears. See EasyAR Sense 4.4.0 release note.
EasyAR Sense Unity Plugin 4.4.0 adds many new features and improvements, highlights are,
Support Unity AR Foundation
EasyAR can now work side-by-side with AR Foundation, which powers up EasyAR and vice versa. You can take both advantages from EasyAR and AR Foundation at the same time. For example, you can now make use ARKit or ARCore features exposed by AR Foundation, like environment probes, when using EasyAR sparse spatial map to localize device in a real-world environment.
The AR Foundation support is implemented as a custom camera, taking flexibility of underlying EasyAR Sense. As a reference, you can now customize the plugin to support other AR Frameworks more easily.
Support Nreal Eyewears (VIO capable AR Eyewears)
EasyAR now supports Nreal devices. The Nreal support is implemented as a custom camera, taking flexibility of underlying EasyAR Sense.
Support Unity Universal Render Pipeline
URP support is now built in.
Support EasyAR Cloud SpatialMap
EasyAR Cloud Spatial Map provides city-scale AR cloud solution. EasyAR Sense Unit Plugin is one of the essential development tools supporting Cloud Spatial Map application development.
New Motion Fusion Feature
EasyAR motion fusion improves image and object tracking stability, and continously tracks those targets when they go out of camera scope when any type of motion tracking is available. This new feature provides a much better tracking result instead of simply running motion tracking and image tracking at the same time as what can be done in the old versions.
New AR Session creation workflow
AR session and other AR components creation now makes use of GameObject menu, which is way more flexible and convenient. Prefabs are marked as obsolete and will be removed in future releases.
Detailed changes are as bellow,
EasyAR Sense Unity Plugin
++ add Unity AR Foundation support++ add Unity Universal Render Pipeline (URP) support++ add Nreal Eyewear support++ add motion fusion feature for image and object tracking, to optimize target tracking when motion tracking is available++ add CloudSpatialMapLocalizerFrameFilter to support EasyAR Cloud SpatialMap++ introduce new method for AR session and other AR components creation+ add GameObject menu items for AR session and other GameObject creation, orgnized in features+ add many useful presets in GameObject menu items- prefabs are marked as obsolete and will be removed in future releases+ add more frame sources to expand AR framework and device support+ add ARCoreFrameSource & ARKitFrameSource & MotionTrackerFrameSource to replace VIOCameraDeviceUnion, runtime selection strategy is replaced by ARComponentPicker in a more flexible way+ add ARFoundationFrameSource and other frame source to support Unity AR Foundation and other AR frameworks- VIOCameraDeviceUnion is marked as obsolete and will be removed in future releases* VideoCameraDevice has been renamed to CameraDeviceFrameSource* RenderCamera has been moved onto FrameSource GameObject* Camera in the AR session is now selected by FrameSource at runtime* MotionTrackerFrameSource will try to update device list from server by default with 2s timeout* ARCoreFrameSource & ARKitFrameSource has gained ability to switch auto focus on or off+ optimize AR session workflow and interface+ add ARComponentPicker component to pick available frame source and other components at runtime+ add ARSession.AvailableCenterMode to query all available center modes in a session+ add ARSession.Origin to retrieve root object against camera when a motion tracking device is running+ add ARSession.TrackingStatus to retrieve the quality of device motion tracking+ add ARSession.State & ARSession.StateChanged to query state of ARSession+ optimize center mode handling+ available center modes in a session are now determined by frame source chosen at runtime+ spatial map can now work in all center modes- remove ARCenterMode.ExternalControl, the functionality is replaced by FrameSource.IsCameraUnderControl == false- rename ARCenterMode.WorldRoot to ARCenterMode.SessionOrigin+ optimize initialization process especially for first time use+ add EasyARController.Initialize & EasyARController.Deinitialize interface to handle manual initialize after startup* an error will be popup if EasyAR library file fail to load* refine popup messages when license key validation fail+ optimize build process especially for first time use+ generate both compile time and load time error when package is not correctly imported using Unity package manager+ build will fail when something wrong happens in the pre-build or post-build process+ when using ARCore XR Plugin, ARCore SDK selection will be automatically handled by default+ add iOS usage description check in the build process* Assets/HiddenEasyAR is not used anymore in the build process* optimize sparse spatial map tracking stability* SurfaceTrackerFrameFilter can now run with motion tracking devices* fix target controller event may be triggered after component destroy in some conditions* fix MotionTrackerCameraDevice tracking mode is not correctly set* camera’s field of view is now set to be consistent with projection matrix
EasyAR Sense Unity Plugin Samples
+ add new sample ARFoundation and other samples to demonstrate Unity AR Foundation and other AR framework combined usage+ add new sample Eyewear_Nreal_SpatialMap_Building to demonstrate how to use SpatialMap on Nreal+ add new sample Eyewear_Nreal_ImageTracking_InWorld to demonstrate how to use image tracking on Nreal+ add new sample MotionTracking_Fusion to demonstrate automatic selection and runtime switch of all available frame sources in a single scene, to maximum supported devices and enable distinct features from each AR framework* change FrameRecording sample to record motion tracking session when available* rename sample ImageTracking_MotionExtend to ImageTracking_MotionFusion, to demonstrate the new motion fusion feature* rename sample Eyewear_ImageTracking to Eyewear_DeviceHasNoTracking, to clarify sample usage* rename sample MapLocalizing_Sparse to SpatialMap_Sparse_Localizing* rename sample SpatialMap_Dense_BallGame to SpatialMap_Dense_BallGame* rename sample SpatialMap_Sparse_ImageTarget to SpatialMap_Sparse_ImageTarget* rename sample MapBuilding_Sparse to SpatialMap_Sparse_Building* rename sample MapBuilding_Sparse_Dense to SpatialMap_Sparse_Dense_Building