📱 Generic components for use with Unity's AR Foundation package
- Components
- Helper Components
- Event Components
- Extensions
https://docs.unity3d.com/Packages/com.unity.package-manager-ui@2.0/manual/index.html
{
"dependencies": {
"xyz.candycoded.arfoundation-components": "https://github.com/CandyCoded/ARFoundation-Components.git#v4.0.4",
"xyz.candycoded.candycoded": "https://github.com/CandyCoded/CandyCoded.git#v4.4.1",
...
}
}
{
"dependencies": {
"xyz.candycoded.arfoundation-components": "4.0.4",
"xyz.candycoded.candycoded": "4.4.1",
...
},
"scopedRegistries": [
{
"name": "candycoded",
"url": "https://registry.npmjs.com",
"scopes": ["xyz.candycoded"]
}
]
}
See https://github.com/CandyCoded/ARFoundation-Components-Demo for a working example of the following steps.
- Install the latest ARKit XR Plugin, ARCore XR Plugin and AR Foundation (preview) packages from the Package Manager.
- Install both the ARFoundation Components and CandyCoded package (see above).
- Create a new AR Session Origin gameObject from the Create Asset / XR context menu.
- Select the AR Session Origin gameObject and attach the AR Raycast Manager component.
- Remove the Main Camera gameObject from the hierarchy (as the AR Session Origin contains its own camera).
- Create a new AR Session gameObject from the Create Asset / XR context menu.
- Create a new AR Default Plane gameObject from the Create Asset / XR context menu, drag it into the Asset panel creating a prefab and then remove it from the hierarchy.
- Attach the AR Plane Manager component to the AR Session Origin gameObject and drag the AR Default Plane prefab from the Assets panel into the Plane Prefab property.
- Change the Detection Flags to Horizontal (or whatever plane type you will target).
- Select the AR Camera in the AR Session Origin gameObject and change the Light Estimation Mode on the AR Camera Manager component to AmbientIntensity.
- Select the Directional Light gameObject and attach the AR Light Estimation component.
- Drag the AR Camera component into the Camera Manager property of the AR Light Estimation component.
- Attach the AR Plane Events and AR Place Object On Plane components to the AR Session Origin gameObject.
- Create a new Cube and set the scale to
Vector3(0.1f, 0.1f, 0.1f)
, drag it into the Asset panel creating a prefab and then remove it from the hierarchy. - Drag the Cube into the Object to Place property of the AR Place Object On Plane component and enable the option Place Multiple.
- Create a new event in the Plane Touched with Touch Position event section of the AR Plane Events component.
- Drag the AR Session Origin gameObject into the object field of the event.
- Select the ARPlaceObjectOnPlane > PlaceObjectOnPlane dynamic method from the dropdown.
- Check that the scene is in the Build Settings window.
- Change the build platform in the Build Settings window to iOS.
- In the XR Plug-in Managment panel, make sure to enable the ARKit plug-in providers.
- In the Player Settings panel, make sure following settings are correct:
Setting | Value | Description |
---|---|---|
Camera Usage Description | AR BABY or any other string |
This value will display when the dialog asking for camera permission displays on device. |
Target minimum iOS Version | 11 or higher |
iOS 11 was the first version ARKit was available. |
Architecture | ARM64 |
The only iOS devices that support ARKit are built on ARM64 architecture. |
First follow: https://developers.google.com/ar/develop/unity/android-11-build
- Check that the scene is in the Build Settings window.
- Change the build platform in the Build Settings window to Android.
- In the XR Plug-in Managment panel, make sure to enable the ARCore plug-in providers.
- In the Player Settings panel, make sure following settings are correct:
Setting | Value | Description |
---|---|---|
Graphic APIs | OPENGLs3 and remove Vulcan |
ARCore does not support Vulcan arcore-android-sdk issue #258 |
Minimum API level | Android 7.0 'Nugget' (API level 24) or higher |
Android 7 was the first version ARCore was available. |