Skip to content

Commit

Permalink
2.0.0 - 2019/03/16
Browse files Browse the repository at this point in the history
@2019.2
  • Loading branch information
ErikMoczi committed Mar 19, 2019
1 parent 1304858 commit 1d21723
Show file tree
Hide file tree
Showing 68 changed files with 3,161 additions and 3,091 deletions.
190 changes: 95 additions & 95 deletions package/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,95 +1,95 @@
# Changelog
All notable changes to this package will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [2.0.0] - 2019-03-04
### Changes
- Verified for 2019.2

## [1.0.0-preview.23] - 2019-01-04
### Fixes
- Refactor the way ARKit face tracking is in the build. Face tracking has been moved to a separate static lib so that it can be removed from the build when face tracking is not enabled. This was preventing apps from passing App Store validation, as face tracking types may not appear in the binary unless you include a privacy policy describing to users how you intend to use face tracking and face data.

### New
- Support the `CameraIntrinsics` API in ARExtensions.

### Fixes
- Fixed linker errors when linking `UnityARKit.a` with Xcode 9.x

## [1.0.0-preview.20] - 2018-12-13

- Fix package dependency.

## [1.0.0-preview.19] - 2018-12-13
- Add C header file necessary to interpret native pointers. See `Includes~/UnityXRNativePtrs.h`
- Add support for setting the camera focus mode.
- Add a build check to ensure only ARM64 is selected as the only target architecture.
- Implement `CameraConfiguration` support, allowing you to enumerate and set the resolution used by the hardware camera.

## [1.0.0-preview.18] - 2018-11-21
### New
- Added ARKit Face Tracking support via `com.unity.xr.facesubsystem`.
- Plane detection modes: Add ability to selectively enable detection for horizontal, vertical, or both types of planes.

## [1.0.0-preview.17] - 2018-10-06
### Fixes
- Fixed an issue where toggling plane detection or light estimation would momentarily pause the ARSession, causing tracking to become temporarily unstable.
- Fixed the (new) CameraImage API to work with the 2018.3 betas.
- ARKit's `ARTrackingStateLimited` was reported as `TrackingState.Tracking`. It is now reported as `TrackingState.Unavailable`.

### Improvements
- Add support for native pointer access for several ARSession-related native objects.
- Add [ARWorldMap](https://developer.apple.com/documentation/arkit/arworldmap) support.
- Add linker validation when building with the IL2CPP scripting backend to avoid stripping the Unity.XR.ARKit assembly.

## [1.0.0-preview.16] - 2018-10-10
### New
- Added support for `XRCameraExtensions` API to get the raw camera image data on the CPU. See the [ARFoundation manual documentation](https://docs.unity3d.com/Packages/[email protected]/manual/cpu-camera-image.html) for more information.

## [1.0.0-preview.15] - 2018-09-18
### Fixes
- Fix memory leak when destroying the ARSession.

## [1.0.0-preview.14] - 2018-08-10
- Add a pre build check to make sure Metal is the first selected Graphics API in Player Settings.
- Remove restriction on symlinking Unity libraries in Build Settings if using Unity 2018.3 or newer.
- Change plugin entry point in UnityARKit.a to avoid name collisions with other libraries (was `UnityPluginLoad`).

## [1.0.0-preview.13] - 2018-07-17
- Update plugin to be compatible with Unity 2018.3
- `ARPlane.trackingState` reports the session `TrackingState` for ARKit planes (previously it returned `TrackingState.Unknown`). ARKit planes do not have per-plane tracking states, so if they exist and the session is tracking, then the SDK will now report that the planes are tracked.

## [1.0.0-preview.12] - 2018-06-20
- Add -fembed-bitcode flag to UnityARKit.a to support archiving.
- Fail the build if "Symlink Unity libraries" is checked.

## [1.0.0-preview.11] - 2018-06-14
- Fail the build if Camera Usage Description is blank

## [1.0.0-preview.10] - 2018-06-08
- Do not include build postprocessor when not on iOS
- Add support for reference points attached to planes

## [1.0.0-preview.9] - 2018-06-06
- Remove extraneous debug log

## [1.0.0-preview.8] - 2018-05-07

### Added
-Created a Legacy XRInput interface to automate the switch between 2018.1 and 2018.2 XRInput versions.

## [1.0.0-preview.8] - 2018-05-24
### Added
- Availability check to determine runtime support for ARKit.
- Normalize average brightness reading from 0..1

## [1.0.0-preview.5] - 2018-03-26

### This is the first release of the ARKit package for multi-platform AR.

In this release we are shipping a working iteration of the ARKit package for
Unity's native multi-platform AR support.
Included in the package are static libraries, configuration files, binaries
and project files needed to adapt ARKit to the Unity multi-platform AR API.
# Changelog
All notable changes to this package will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [2.0.0] - 2019-03-15
### Changes
- Verified for 2019.2

## [1.0.0-preview.23] - 2019-01-04
### Fixes
- Refactor the way ARKit face tracking is in the build. Face tracking has been moved to a separate static lib so that it can be removed from the build when face tracking is not enabled. This was preventing apps from passing App Store validation, as face tracking types may not appear in the binary unless you include a privacy policy describing to users how you intend to use face tracking and face data.

### New
- Support the `CameraIntrinsics` API in ARExtensions.

### Fixes
- Fixed linker errors when linking `UnityARKit.a` with Xcode 9.x

## [1.0.0-preview.20] - 2018-12-13

- Fix package dependency.

## [1.0.0-preview.19] - 2018-12-13
- Add C header file necessary to interpret native pointers. See `Includes~/UnityXRNativePtrs.h`
- Add support for setting the camera focus mode.
- Add a build check to ensure only ARM64 is selected as the only target architecture.
- Implement `CameraConfiguration` support, allowing you to enumerate and set the resolution used by the hardware camera.

## [1.0.0-preview.18] - 2018-11-21
### New
- Added ARKit Face Tracking support via `com.unity.xr.facesubsystem`.
- Plane detection modes: Add ability to selectively enable detection for horizontal, vertical, or both types of planes.

## [1.0.0-preview.17] - 2018-10-06
### Fixes
- Fixed an issue where toggling plane detection or light estimation would momentarily pause the ARSession, causing tracking to become temporarily unstable.
- Fixed the (new) CameraImage API to work with the 2018.3 betas.
- ARKit's `ARTrackingStateLimited` was reported as `TrackingState.Tracking`. It is now reported as `TrackingState.Unavailable`.

### Improvements
- Add support for native pointer access for several ARSession-related native objects.
- Add [ARWorldMap](https://developer.apple.com/documentation/arkit/arworldmap) support.
- Add linker validation when building with the IL2CPP scripting backend to avoid stripping the Unity.XR.ARKit assembly.

## [1.0.0-preview.16] - 2018-10-10
### New
- Added support for `XRCameraExtensions` API to get the raw camera image data on the CPU. See the [ARFoundation manual documentation](https://docs.unity3d.com/Packages/[email protected]/manual/cpu-camera-image.html) for more information.

## [1.0.0-preview.15] - 2018-09-18
### Fixes
- Fix memory leak when destroying the ARSession.

## [1.0.0-preview.14] - 2018-08-10
- Add a pre build check to make sure Metal is the first selected Graphics API in Player Settings.
- Remove restriction on symlinking Unity libraries in Build Settings if using Unity 2018.3 or newer.
- Change plugin entry point in UnityARKit.a to avoid name collisions with other libraries (was `UnityPluginLoad`).

## [1.0.0-preview.13] - 2018-07-17
- Update plugin to be compatible with Unity 2018.3
- `ARPlane.trackingState` reports the session `TrackingState` for ARKit planes (previously it returned `TrackingState.Unknown`). ARKit planes do not have per-plane tracking states, so if they exist and the session is tracking, then the SDK will now report that the planes are tracked.

## [1.0.0-preview.12] - 2018-06-20
- Add -fembed-bitcode flag to UnityARKit.a to support archiving.
- Fail the build if "Symlink Unity libraries" is checked.

## [1.0.0-preview.11] - 2018-06-14
- Fail the build if Camera Usage Description is blank

## [1.0.0-preview.10] - 2018-06-08
- Do not include build postprocessor when not on iOS
- Add support for reference points attached to planes

## [1.0.0-preview.9] - 2018-06-06
- Remove extraneous debug log

## [1.0.0-preview.8] - 2018-05-07

### Added
-Created a Legacy XRInput interface to automate the switch between 2018.1 and 2018.2 XRInput versions.

## [1.0.0-preview.8] - 2018-05-24
### Added
- Availability check to determine runtime support for ARKit.
- Normalize average brightness reading from 0..1

## [1.0.0-preview.5] - 2018-03-26

### This is the first release of the ARKit package for multi-platform AR.

In this release we are shipping a working iteration of the ARKit package for
Unity's native multi-platform AR support.
Included in the package are static libraries, configuration files, binaries
and project files needed to adapt ARKit to the Unity multi-platform AR API.
14 changes: 7 additions & 7 deletions package/CHANGELOG.md.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

188 changes: 94 additions & 94 deletions package/Documentation~/com.unity.xr.arkit.md
Original file line number Diff line number Diff line change
@@ -1,94 +1,94 @@
# About ARKit XR Plugin

Use the *ARKit XR Plugin* package enable ARKit support via Unity's multi-platform XR API. This package implements the following XR Subsystems:

* [Camera](https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Experimental.XR.XRCameraSubsystem.html)
* [Depth](https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Experimental.XR.XRDepthSubsystem.html)
* [Input](https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Experimental.XR.XRInputSubsystem.html)
* [Planes](https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Experimental.XR.XRPlaneSubsystem.html)
* [Raycast](https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Experimental.XR.XRRaycastSubsystem.html)
* [ReferencePoints](https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Experimental.XR.XRReferencePointSubsystem.html)
* [Session](https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Experimental.XR.XRSessionSubsystem.html)
* [Face Tracking](https://docs.unity3d.com/Packages/[email protected]/manual/index.html)
* [Environment Probes](https://docs.unity3d.com/Packages/[email protected]/manual/index.html)

This version of *ARKit XR Plugin* supports the following features:

* Device Localization
* Horizontal Plane Detection
* Vertical Plane Detection
* Point Clouds
* Pass-through Camera View
* Light Estimation
* Reference Points
* Hit Testing
* Session Management
* Face Tracking
* Environment Probes

# Installing ARKit XR Plugin

To install this package, follow the instructions in the [Package Manager documentation](https://docs.unity3d.com/Packages/com.unity.package-manager-ui@latest/index.html).

In addition, you will likely want to also install the *ARFoundation* package which makes use of *ARKit XR Plugin* package and provides many useful scripts and prefabs.

# Using ARKit XR Plugin

The *ARKit XR Plugin* implements the native iOS endpoints required for building Handheld AR apps using Unity's multi-platform XR API. However, this package does not expose any public scripting interface of its own and most developers should use the scripts, prefabs, and assets provided by *ARFoundation* as the basis for their Handheld AR apps.

Inclusion of the *ARKit XR Plugin* will result in the inclusion of source files, static libraries, shader files, and plugin metadata to be included in the XCode project generated as part of the Unity's standard iOS build process.

## Face Tracking
Using Face Tracking requires compatible hardware (iPhone X or above). You also need to create a `ARKitSettings` asset and enable face tracking in order for that part of the plugin to be included in your build.

## Creating a ARKitSettings asset
From the menu, choose _Edit/Project Settings/ARKit XR Plugin_. This will bring up a dialog box which can be used to select an existing ARKitSettings asset or create a new one:

![alt text](images/create_arkitsettings_dialog.png "ARKitSettings dialog")

Selecting the ARKitSettings asset from above will allow you to manipulate its values in the Inspector.

### Enable Face Tracking
For Face Tracking, you should check the box named ARKit Face Tracking Enabled:

![alt text](images/arkitsettings_inspector.png "ARKitSettings Inspector Face Tracking")

### ARKit Required
ARKit may be either "required" or "optional". If ARKit is set to optional, the app may be installed on a device that does not support ARKit. This is useful if you want to provide an experience which uses AR where available, and presents a different experience where AR is not available. By default, ARKit is required.

![alt text](images/arkitsettings_inspector2.png "ARKitSettings Inspector ARKit Required")


# Technical details
## Requirements

This version of *ARKit XR Plugin* is compatible with the following versions of the Unity Editor:

* 2018.3 and later (recommended)

## Known limitations

* The following ARKit features are not yet supported in this package:
* 2D Image Recognition
* 2D Image Tracking
* 3D Object Recognition
* Color Correction as an RGB Value
* If you tick the "Symlink Unity libraries" checkbox in the iOS Build Settings, then the trampoline Xcode project will not be able to find `UnityARKit.m`

## Package contents

This version of *ARKit XR Plugin* includes:

* A static library which provides implementation of the XR Subsystems listed above
* An Objective-C source file
* A shader used for rendering the camera image
* A plugin metadata file

## Document revision history
|Date|Reason|
|---|---|
|December 18, 2018|Add environment probe support. Updated the requirements to be Unity 2018.3.|
|November 14, 2018|Add Face Tracking support.|
|October 9, 2018|Remove lack of ARWorldMap support as a known limitation; it is now supported.|
|April 19, 2018|Documentation update. Added support for vertical planes and boundary points for all planes.|

# About ARKit XR Plugin

Use the *ARKit XR Plugin* package enable ARKit support via Unity's multi-platform XR API. This package implements the following XR Subsystems:

* [Camera](https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Experimental.XR.XRCameraSubsystem.html)
* [Depth](https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Experimental.XR.XRDepthSubsystem.html)
* [Input](https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Experimental.XR.XRInputSubsystem.html)
* [Planes](https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Experimental.XR.XRPlaneSubsystem.html)
* [Raycast](https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Experimental.XR.XRRaycastSubsystem.html)
* [ReferencePoints](https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Experimental.XR.XRReferencePointSubsystem.html)
* [Session](https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Experimental.XR.XRSessionSubsystem.html)
* [Face Tracking](https://docs.unity3d.com/Packages/[email protected]/manual/index.html)
* [Environment Probes](https://docs.unity3d.com/Packages/[email protected]/manual/index.html)

This version of *ARKit XR Plugin* supports the following features:

* Device Localization
* Horizontal Plane Detection
* Vertical Plane Detection
* Point Clouds
* Pass-through Camera View
* Light Estimation
* Reference Points
* Hit Testing
* Session Management
* Face Tracking
* Environment Probes

# Installing ARKit XR Plugin

To install this package, follow the instructions in the [Package Manager documentation](https://docs.unity3d.com/Packages/com.unity.package-manager-ui@latest/index.html).

In addition, you will likely want to also install the *ARFoundation* package which makes use of *ARKit XR Plugin* package and provides many useful scripts and prefabs.

# Using ARKit XR Plugin

The *ARKit XR Plugin* implements the native iOS endpoints required for building Handheld AR apps using Unity's multi-platform XR API. However, this package does not expose any public scripting interface of its own and most developers should use the scripts, prefabs, and assets provided by *ARFoundation* as the basis for their Handheld AR apps.

Inclusion of the *ARKit XR Plugin* will result in the inclusion of source files, static libraries, shader files, and plugin metadata to be included in the XCode project generated as part of the Unity's standard iOS build process.

## Face Tracking
Using Face Tracking requires compatible hardware (iPhone X or above). You also need to create a `ARKitSettings` asset and enable face tracking in order for that part of the plugin to be included in your build.

## Creating a ARKitSettings asset
From the menu, choose _Edit/Project Settings/ARKit XR Plugin_. This will bring up a dialog box which can be used to select an existing ARKitSettings asset or create a new one:

![alt text](images/create_arkitsettings_dialog.png "ARKitSettings dialog")

Selecting the ARKitSettings asset from above will allow you to manipulate its values in the Inspector.

### Enable Face Tracking
For Face Tracking, you should check the box named ARKit Face Tracking Enabled:

![alt text](images/arkitsettings_inspector.png "ARKitSettings Inspector Face Tracking")

### ARKit Required
ARKit may be either "required" or "optional". If ARKit is set to optional, the app may be installed on a device that does not support ARKit. This is useful if you want to provide an experience which uses AR where available, and presents a different experience where AR is not available. By default, ARKit is required.

![alt text](images/arkitsettings_inspector2.png "ARKitSettings Inspector ARKit Required")


# Technical details
## Requirements

This version of *ARKit XR Plugin* is compatible with the following versions of the Unity Editor:

* 2018.3 and later (recommended)

## Known limitations

* The following ARKit features are not yet supported in this package:
* 2D Image Recognition
* 2D Image Tracking
* 3D Object Recognition
* Color Correction as an RGB Value
* If you tick the "Symlink Unity libraries" checkbox in the iOS Build Settings, then the trampoline Xcode project will not be able to find `UnityARKit.m`

## Package contents

This version of *ARKit XR Plugin* includes:

* A static library which provides implementation of the XR Subsystems listed above
* An Objective-C source file
* A shader used for rendering the camera image
* A plugin metadata file

## Document revision history
|Date|Reason|
|---|---|
|December 18, 2018|Add environment probe support. Updated the requirements to be Unity 2018.3.|
|November 14, 2018|Add Face Tracking support.|
|October 9, 2018|Remove lack of ARWorldMap support as a known limitation; it is now supported.|
|April 19, 2018|Documentation update. Added support for vertical planes and boundary points for all planes.|

Loading

0 comments on commit 1d21723

Please sign in to comment.