Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
## [6.0.3] - 2024-08-16

### Changed
  • Loading branch information
Unity Technologies committed Aug 16, 2024
1 parent 9095ecd commit 539beaf
Show file tree
Hide file tree
Showing 47 changed files with 332 additions and 267 deletions.
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ 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).

## [6.0.3] - 2024-08-16

### Changed

- Changed AR Foundation dependency version from 6.0.2 to 6.0.3

## [6.0.2] - 2024-05-22

### Changed
Expand Down Expand Up @@ -199,7 +205,7 @@ No changes

- Fixed [an issue](https://issuetracker.unity3d.com/issues/ar-camera-feed-jitters-and-shakes-with-mutithreaded-rendering-when-running-on-ios-16) where rendered frames comes out of order on iOS 16 when built with multi-threaded rendering enabled in Unity.
- Fixed a bug where the `HandheldARInputDevice` did not appear in the Editor's InputActions UI. Now, if you are manually configuring the **Tracked Pose Driver** component on the camera under XR Origin, you can select **AR Handheld Device > devicePosition** and **AR Handheld Device > deviceRotation** for position and rotation input bindings respectively.
- Fixed a bug where `ARKitReferenceImageLibraryBuildProcessor` could cause compile error when build target is not iOS.
- Fixed a bug where `ARKitReferenceImageLibraryBuildProcessor` could cause compile error when build target is not iOS.

## [5.0.0-pre.13] - 2022-06-28

Expand Down
2 changes: 2 additions & 0 deletions Documentation~/TableOfContents.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
* [Object tracking](xref:arkit-object-tracking)
* [Face tracking](xref:arkit-face-tracking)
* [Point clouds](xref:arkit-point-clouds)
* [Anchors](xref:arkit-anchors)
* [Meshing](xref:arkit-meshing)
* [Occlusion](xref:arkit-occlusion)
* [Ray casts](xref:arkit-raycasts)
* [Participants](xref:arkit-participant-tracking)
25 changes: 25 additions & 0 deletions Documentation~/arkit-anchors.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
uid: arkit-anchors
---
# Anchors

This page is a supplement to the AR Foundation [Anchors](xref:arfoundation-anchors) manual. The following sections describe the optional features of AR Foundation's [XRAnchorSubsystem](xref:UnityEngine.XR.ARSubsystems.XRAnchorSubsystem) supported by ARKit.

[!include[](snippets/arf-docs-tip.md)]

## Optional feature support

ARKit implements the following optional features of AR Foundation's [XRAnchorSubsystem](xref:UnityEngine.XR.ARSubsystems.XRAnchorSubsystem):

| Feature | Descriptor Property | Supported |
| :------ | :------------------ | :-------: |
| **Trackable attachments** | [supportsTrackableAttachments](xref:UnityEngine.XR.ARSubsystems.XRAnchorSubsystemDescriptor.supportsTrackableAttachments) | Yes |
| **Synchronous add** | [supportsSynchronousAdd](xref:UnityEngine.XR.ARSubsystems.XRAnchorSubsystemDescriptor.supportsSynchronousAdd) | Yes |
| **Save anchor** | [supportsSaveAnchor](xref:UnityEngine.XR.ARSubsystems.XRAnchorSubsystemDescriptor.supportsSaveAnchor) | |
| **Load anchor** | [supportsLoadAnchor](xref:UnityEngine.XR.ARSubsystems.XRAnchorSubsystemDescriptor.supportsLoadAnchor) | |
| **Erase anchor** | [supportsEraseAnchor](xref:UnityEngine.XR.ARSubsystems.XRAnchorSubsystemDescriptor.supportsEraseAnchor) | |
| **Get saved anchor IDs** | [supportsGetSavedAnchorIds](xref:UnityEngine.XR.ARSubsystems.XRAnchorSubsystemDescriptor.supportsGetSavedAnchorIds) | |
| **Async cancellation** | [supportsAsyncCancellation](xref:UnityEngine.XR.ARSubsystems.XRAnchorSubsystemDescriptor.supportsAsyncCancellation) | |

> [!NOTE]
> Refer to AR Foundation [Anchors platform support](xref:arfoundation-anchors-platform-support) for more information on the optional features of the anchor subsystem.
2 changes: 1 addition & 1 deletion Documentation~/arkit-camera.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ ARKit implements the following optional features of AR Foundation's [XRCameraSub
| **Exif data** | [supportsExifData](xref:UnityEngine.XR.ARSubsystems.XRCameraSubsystemDescriptor.supportsExifData) | iOS 16+ |

> [!NOTE]
> Refer to AR Foundation [Camera platform support](xref:arfoundation-camera-platform-support) for more information
> Refer to AR Foundation [Camera platform support](xref:arfoundation-camera-platform-support) for more information
> on the optional features of the camera subsystem.
## Light estimation
Expand Down
6 changes: 3 additions & 3 deletions Documentation~/arkit-face-tracking.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ This page is a supplement to the AR Foundation [Face tracking](xref:arfoundation
## Optional feature support

ARKit implements the following optional features of AR Foundation's [XRFaceSubsystem](xref:UnityEngine.XR.ARSubsystems.XRFaceSubsystem). The availability of features on specific devices depends on device hardware and software. Refer to [Requirements](#requirements) for more information.
ARKit implements the following optional features of AR Foundation's [XRFaceSubsystem](xref:UnityEngine.XR.ARSubsystems.XRFaceSubsystem). The availability of features on specific devices depends on device hardware and software. Refer to [Requirements](#requirements) for more information.

| Feature | Descriptor Property | Supported |
| :------ | :------------------ | :-------: |
Expand All @@ -21,7 +21,7 @@ ARKit implements the following optional features of AR Foundation's [XRFaceSubsy
| **Eye tracking** | [supportsEyeTracking](xref:UnityEngine.XR.ARSubsystems.XRFaceSubsystemDescriptor.supportsEyeTracking) | Yes |

> [!NOTE]
> Refer to AR Foundation [Face tracking platform support](xref:arfoundation-face-tracking-platform-support) for more information
> Refer to AR Foundation [Face tracking platform support](xref:arfoundation-face-tracking-platform-support) for more information
> on the optional features of the face subsystem.
## Session configuration
Expand All @@ -40,7 +40,7 @@ ARKit provides a series of [blend shapes](https://developer.apple.com/documentat

A blend shape represents action at a location on a face. Each blend shape is defined by an [ARKitBlendShapeLocation](xref:UnityEngine.XR.ARKit.ARKitBlendShapeLocation) to identify the location of the face action and a [ARKitBlendShapeCoefficient](xref:UnityEngine.XR.ARKit.ARKitBlendShapeCoefficient) to describe the amount of action at the location. The `ARKitBlendShapeCoefficient` is a value between `0.0` and `1.0`.

You can learn more about blend shapes with the `Blend shapes` sample on the [AR Foundation Samples](https://github.com/Unity-Technologies/arfoundation-samples/tree/main?tab=readme-ov-file#blend-shapes-arkit) GitHub. This sample uses blend shapes to puppet a cartoon face which is displayed over the detected face.
You can learn more about blend shapes with the `Blend shapes` sample on the [AR Foundation Samples](https://github.com/Unity-Technologies/arfoundation-samples/tree/main?tab=readme-ov-file#blend-shapes-arkit) GitHub. This sample uses blend shapes to puppet a cartoon face which is displayed over the detected face.

## Face visualizer samples

Expand Down
2 changes: 1 addition & 1 deletion Documentation~/arkit-occlusion.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ ARKit implements the following optional features of AR Foundation's [XROcclusion
| **Human Segmentation Depth Image** | [humanSegmentationDepthImageSupported](xref:UnityEngine.XR.ARSubsystems.XROcclusionSubsystemDescriptor.humanSegmentationDepthImageSupported) | Yes |

> [!NOTE]
> Refer to AR Foundation [Occlusion platform support](xref:arfoundation-occlusion-platform-support) for more information
> Refer to AR Foundation [Occlusion platform support](xref:arfoundation-occlusion-platform-support) for more information
> on the optional features of the occlusion subsystem.
## Environment Depth
Expand Down
6 changes: 3 additions & 3 deletions Documentation~/arkit-plane-detection.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ For more information, refer to [Plane detection](xref:arfoundation-plane-detecti

## Plane classifications

This package maps ARKit's [ARPlaneAnchor.Classification](https://developer.apple.com/documentation/arkit/arplaneanchor/classification) to AR Foundation's [PlaneClassifications](xref:UnityEngine.XR.ARFoundation.PlaneClassifications).
This package maps ARKit's [ARPlaneAnchor.Classification](https://developer.apple.com/documentation/arkit/arplaneanchor/classification) to AR Foundation's [PlaneClassifications](xref:UnityEngine.XR.ARFoundation.PlaneClassifications).

> [!NOTE]
> While AR Foundation allows XR providers to assign multiple classifications per plane, ARKit only assigns a single classification to any given plane.
> [!NOTE]
> While AR Foundation allows XR providers to assign multiple classifications per plane, ARKit only assigns a single classification to any given plane.
Refer to the table below to understand the mapping between AR Foundation's classifications and ARKit's classifications:

Expand Down
40 changes: 40 additions & 0 deletions Documentation~/arkit-raycasts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
uid: arkit-raycasts
---
# Ray casts

This page is a supplement to the AR Foundation [Ray casts](xref:arfoundation-raycasts) manual. The following sections only contain information about APIs where ARKit exhibits unique platform-specific behavior.

[!include[](snippets/arf-docs-tip.md)]

## Optional feature support

ARKit implements the following optional features of AR Foundation's [XRRaycastSubsystem](xref:UnityEngine.XR.ARSubsystems.XRRaycastSubsystem):

| Feature | Descriptor Property | Supported |
| :------------------------- | :------------------ | :-------: |
| **Viewport based raycast** | [supportsViewportBasedRaycast](xref:UnityEngine.XR.ARSubsystems.XRRaycastSubsystemDescriptor.supportsViewportBasedRaycast)| Yes |
| **World based raycast** | [supportsWorldBasedRaycast](xref:UnityEngine.XR.ARSubsystems.XRRaycastSubsystemDescriptor.supportsWorldBasedRaycast) | |
| **Tracked raycasts** | [supportsTrackedRaycasts](xref:UnityEngine.XR.ARSubsystems.XRRaycastSubsystemDescriptor.supportsTrackedRaycasts) | iOS 13+ |

### Supported trackables

ARKit supports ray casting against the following trackable types:

| TrackableType | Supported |
| :---------------------- | :-------: |
| **BoundingBox** | |
| **Depth** | |
| **Face** | |
| **FeaturePoint** | Yes |
| **Image** | |
| **Planes** | Yes |
| **PlaneEstimated** | Yes |
| **PlaneWithinBounds** | Yes |
| **PlaneWithinInfinity** | Yes |
| **PlaneWithinPolygon** | Yes |

> [!NOTE]
> Refer to AR Foundation [Ray cast platform support](xref:arfoundation-raycasts-platform-support) for more information on the optional features of the Raycast subsystem.
[!include[](snippets/apple-arkit-trademark.md)]
2 changes: 1 addition & 1 deletion Documentation~/filter.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
apiRules:
- exclude:
uidRegex: Tests$
uidRegex: \.Tests$
type: Namespace
- exclude:
uidRegex: ^UnityEngine\.XR\.ARKit\.ARKitLoaderSettings$
Expand Down
8 changes: 4 additions & 4 deletions Documentation~/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ Use the Apple ARKit XR Plug-in package to enable ARKit support in your [AR Found
| [Face tracking](xref:arkit-face-tracking) | Detect and track human faces. |
| [Body tracking](xref:arfoundation-body-tracking) | Detect and track a human body. |
| [Point clouds](xref:arkit-point-clouds) | Detect and track feature points. |
| [Raycasts](xref:arfoundation-raycasts) | Cast rays against tracked items. |
| [Anchors](xref:arfoundation-anchors) | Track arbitrary points in space. |
| [Ray casts](xref:arkit-raycasts) | Cast rays against tracked items. |
| [Anchors](xref:arkit-anchors) | Track arbitrary points in space. |
| [Meshing](xref:arkit-meshing) | Generate meshes of the environment. |
| [Environment probes](xref:arfoundation-environment-probes) | Generate cubemaps of the environment. |
| [Occlusion](xref:arkit-occlusion) | Occlude AR content with physical objects and perform human segmentation. |
Expand All @@ -32,7 +32,7 @@ This package does not implement the following AR Foundation features as they are
| [Bounding Box detection](xref:arfoundation-bounding-box-detection) | Detect and track bounding boxes of 3D objects |

> [!IMPORTANT]
> Apple's App Store rejects any app that contains certain face tracking-related symbols in its binary if the app developer doesn't intend to use face tracking. To avoid ambiguity, face tracking support is available only when face tracking is enabled. Refer to [Enable the Face tracking subsystem](xref:arkit-project-config#enable-face-tracking) for instructions for changing this setting.
> Apple's App Store rejects any app that contains certain face tracking-related symbols in its binary if the app developer doesn't intend to use face tracking. To avoid ambiguity, face tracking support is available only when face tracking is enabled. Refer to [Enable the Face tracking subsystem](xref:arkit-project-config#enable-face-tracking) for instructions for changing this setting.
# Install the Apple ARKit XR Plug-in

Expand All @@ -42,7 +42,7 @@ You can also install and uninstall this package using the [Package Manager](http

# Project configuration

See [Project configuration](xref:arkit-project-config) for information about the project settings that affect ARKit apps.
See [Project configuration](xref:arkit-project-config) for information about the project settings that affect ARKit apps.

# Usage

Expand Down
12 changes: 6 additions & 6 deletions Documentation~/project-configuration-arkit.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ uid: arkit-project-config
---
# Project configuration

Use the **XR Plug-in Management** settings to configure the Apple ARKit plug-in for your project.
Use the **XR Plug-in Management** settings to configure the Apple ARKit plug-in for your project.

To get started, follow the instructions in [Enable the ARKit plug-in](#enable-arkit). This also installs the ARKit package, if needed. Once installed and enabled, you can configure your project settings as described in the [ARKit Project settings](#project-settings) section.

Expand Down Expand Up @@ -60,9 +60,9 @@ Refer to Apple's [Verifying Device Support and User Permission](https://develope
<a name="camera-usage"></a>
### Set the Camera Usage Description

The camera usage description is a message that tells the user why your app is requesting access to
the device’s camera. The string assigned to this field is added to your app's `Info.plist` file for
the `NSCameraUsageDescription` key.
The camera usage description is a message that tells the user why your app is requesting access to
the device’s camera. The string assigned to this field is added to your app's `Info.plist` file for
the `NSCameraUsageDescription` key.

To set or change this setting:

Expand Down Expand Up @@ -110,7 +110,7 @@ To change this setting:
4. For **Requirement**, choose either **Optional** or **Required**.

> [!NOTE]
> The Apple ARKit plug-in **Requirement** overrides the similar iOS Player setting, **Requires ARKit support**. When you have the ARKit plug-in installed, Unity ignores the Player **Requires ARKit support** setting and uses the plug-in **Requirement** value.
> The Apple ARKit plug-in **Requirement** overrides the similar iOS Player setting, **Requires ARKit support**. When you have the ARKit plug-in installed, Unity ignores the Player **Requires ARKit support** setting and uses the plug-in **Requirement** value.

<a name="project-validation"></a>
Expand All @@ -127,7 +127,7 @@ To review the ARKit project validation rules:
3. Select **Project Validation** in the list to view the validation page.
4. Select the **iOS** tab to view the status of the validation checks for iOS XR plug-ins, including ARKit.

Rules that pass validation aren't shown unless you enable **Show all**.
Rules that pass validation aren't shown unless you enable **Show all**.

Some rules provide a **Fix** button that updates the configuration so that the rule passes validation. Other rules provide an **Edit** button that takes you to the relevant setting so that you can make the necessary adjustments yourself.

Expand Down
10 changes: 5 additions & 5 deletions Editor/ARKitBuildProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ class Preprocessor : IPreprocessBuildWithReport, IPreprocessShaders
};

public int callbackOrder => 0;

void IPreprocessShaders.OnProcessShader(Shader shader, ShaderSnippetData snippet, IList<ShaderCompilerData> data)
{
#if UNITY_IOS && UNITY_XR_ARKIT_LOADER_ENABLED
Expand Down Expand Up @@ -158,7 +158,7 @@ static void EnsureMinimumBuildTarget()
if (userSetTargetVersion < new OSVersion(11))
{
throw new BuildFailedException(
$"You have selected a minimum target iOS version of {userSetTargetVersion} and have " +
$"You have selected a minimum target iOS version of {userSetTargetVersion} and have " +
" the Apple ARKit XR Plug-in package installed. ARKit requires at least iOS version 11.0. " +
"See Player Settings > Other Settings > Target minimum iOS Version.");
}
Expand Down Expand Up @@ -213,9 +213,9 @@ static bool ShouldIncludeRuntimePluginsInBuild(string path)
}
}

// Our PostProcessor depends on UnityEditor.iOS.PlistDocument, a class in Unity's iOS module.
// To ensure that this package successfully compiles in projects that don't have the iOS module installed, we must
// wrap the PostProcessor with a UNITY_IOS preprocessor directive.
// Our PostProcessor depends on UnityEditor.iOS.PlistDocument, a class in Unity's iOS module.
// To ensure that this package successfully compiles in projects that don't have the iOS module installed, we must
// wrap the PostProcessor with a UNITY_IOS preprocessor directive.
#if UNITY_IOS
class PostProcessor : IPostprocessBuildWithReport
{
Expand Down
2 changes: 1 addition & 1 deletion Editor/AssemblyInfo.cs.meta

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

2 changes: 1 addition & 1 deletion Editor/Cli.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System;
using System;
using System.Diagnostics;

namespace UnityEditor.XR.ARKit
Expand Down
2 changes: 1 addition & 1 deletion Editor/NoniOSBuildProcessor.cs.meta

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

2 changes: 1 addition & 1 deletion Editor/Plist.cs.meta

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

2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Apple ARKit XR Plug-in © 2024 Unity Technologies
com.unity.xr.arkit copyright © 2024 Unity Technologies

Licensed under the Unity Companion License for Unity-dependent projects (see [Unity Companion License](https://unity3d.com/legal/licenses/unity_companion_license)).

Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Apple ARKit XR Plug-in Package

The purpose of this package is to provide ARKit XR Support.
The purpose of this package is to provide ARKit XR Support.

## Package structure

Expand All @@ -19,13 +19,13 @@ The purpose of this package is to provide ARKit XR Support.
└── Runtime
├── FaceTracking
│ ├── ARKitFaceSubsystem.cs
│ ├── Unity.XR.ARKit.FaceTracking.asmdef
│ ├── Unity.XR.ARKit.FaceTracking.asmdef
├── iOS
│ ├── link.xml
│ ├── Resources
│ │ └── ARKitShader.shader
│ ├── UnityARKit.a
│ └── UnityARKit.m
│ ├── Resources
│ │ └── ARKitShader.shader
│ ├── UnityARKit.a
│ └── UnityARKit.m
├── UnitySubsystemsManifest.json
└── Unity.XR.ARKit.asmdef
```
Expand Down
Loading

0 comments on commit 539beaf

Please sign in to comment.