Configure an ARCore session with ARCore Extensions for Unity
Stay organized with collections
Save and categorize content based on your preferences.
Configure an ARCore session to build AR experiences for your app.
What is a session?
All AR processes, such as motion tracking,
environmental understanding, and lighting estimation, happen inside an ARCore
session. ARSession is the main entry point to the ARCore
API. It manages the AR system state and handles the session lifecycle, allowing
the app to create, configure, start, or stop a session. Most importantly, it
enables the app to receive frames that allow access to the camera image and
device pose.
The session can be used to configure the following features:
AR Foundation must be set up before you can use ARCore Extensions. See the
AR Foundation setup documentation
for instructions for setting up your AR scene.
ARCore Extensions must be set up before you can configure an ARCore session. See
the
ARCore Extensions setup documentation if you have not done so already.
Configure extension features in ARCoreExtensionsConfig
Create a new session configuration in ARCore.
In Unity, create a new session configuration by navigating to Assets >
Create > XR > ARCore Extensions Config.
The default configuration looks like this:
In the Hierarchy pane, select the ARCore Extensions
object.
In the Inspector pane's ARCore Extensions Config field,
click the target
button, and connect to the ARCoreExtensionsConfig
asset.
AR Session management
In AR Foundation 2.1
and 3.1 destroying the ARSession game object would destroy the underlying
ARCore session.
Starting with AR Foundation 4.0, you must use the
LoaderUtility
functions to destroy and create subsystems instead. See the AR Foundation
3.x to 4.x migration guide.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-14 UTC."],[[["\u003cp\u003eAn ARCore session manages all AR processes like motion tracking and environmental understanding, and is accessed through the \u003ccode\u003eARSession\u003c/code\u003e object.\u003c/p\u003e\n"],["\u003cp\u003eBefore configuring an ARCore session, ensure both AR Foundation and ARCore Extensions are properly set up in your Unity project.\u003c/p\u003e\n"],["\u003cp\u003eYou can configure extension features within the ARCoreExtensionsConfig asset, which allows you to customize session behavior.\u003c/p\u003e\n"],["\u003cp\u003eStarting with AR Foundation 4.0, session management is handled through \u003ccode\u003eLoaderUtility\u003c/code\u003e functions instead of destroying the \u003ccode\u003eARSession\u003c/code\u003e game object.\u003c/p\u003e\n"],["\u003cp\u003eAfter configuring your session, explore the provided quickstart guides for Android and iOS to begin building AR experiences with ARCore Extensions.\u003c/p\u003e\n"]]],["An ARCore session is essential for AR processes like motion tracking and lighting estimation. `ARSession` manages the AR system state, including session creation and configuration, and enables access to camera images and device pose. Before configuring the ARCore session, AR Foundation and ARCore Extensions must be set up. You need to create an `ARCore Extensions Config` asset in Unity and connect it to the `ARCore Extensions` object. Session management is done using `LoaderUtility` functions in newer versions of AR Foundation.\n"],null,["# Configure an ARCore session with ARCore Extensions for Unity\n\nConfigure an ARCore session to build AR experiences for your app.\n\nWhat is a session?\n------------------\n\nAll [AR processes](/ar/discover/concepts), such as motion tracking,\nenvironmental understanding, and lighting estimation, happen inside an ARCore\nsession. [`ARSession`](https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.1/api/UnityEngine.XR.ARFoundation.ARSession.html) is the main entry point to the ARCore\nAPI. It manages the AR system state and handles the session lifecycle, allowing\nthe app to create, configure, start, or stop a session. Most importantly, it\nenables the app to receive frames that allow access to the camera image and\ndevice pose.\n\nThe session can be used to configure the following features:\n\n- [Cloud Anchors](/ar/develop/cloud-anchors)\n- [ARCore Geospatial API](/ar/develop/geospatial)\n\nSet up AR Foundation and ARCore Extensions\n------------------------------------------\n\nAR Foundation must be set up before you can use ARCore Extensions. See the\n[AR Foundation setup documentation](https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.1/manual/index.html#scene-setup)\nfor instructions for setting up your AR scene.\n\nARCore Extensions must be set up before you can configure an ARCore session. See\nthe\n[ARCore Extensions setup documentation](/ar/develop/unity-arf/getting-started-extensions#setup_arcore_extensions) if you have not done so already.\n\nConfigure extension features in ARCoreExtensionsConfig\n------------------------------------------------------\n\nCreate a new session configuration in ARCore.\n\n1. In Unity, create a new session configuration by navigating to **Assets \\\u003e\n Create \\\u003e XR \\\u003e ARCore Extensions Config**.\n\n The default configuration looks like this:\n\n2. In the **Hierarchy** pane, select the **ARCore Extensions**\n object.\n\n3. In the **Inspector** pane's **ARCore Extensions Config** field,\n click the target\n\n button, and connect to the **ARCoreExtensionsConfig**\n asset.\n\nAR Session management\n---------------------\n\nIn [AR Foundation](https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/manual) 2.1\nand 3.1 destroying the **ARSession** game object would destroy the underlying\nARCore session.\n\nStarting with AR Foundation 4.0, you must use the\n[`LoaderUtility`](https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.LoaderUtility.html)\nfunctions to destroy and create subsystems instead. See the AR Foundation\n[3.x to 4.x migration guide](https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.1/manual/migration-guide-3.html).\n\n- [`LoaderUtility.Deinitialize()`](https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.LoaderUtility.html#UnityEngine_XR_ARFoundation_LoaderUtility_Deinitialize)\n- [`LoaderUtility.Initialize()`](https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.2/api/UnityEngine.XR.ARFoundation.LoaderUtility.html#UnityEngine_XR_ARFoundation_LoaderUtility_Initialize)\n\nNext steps\n----------\n\n- [Quickstart for ARCore Extensions for Android](/ar/develop/unity-arf/quickstart-android)\n- [Quickstart for ARCore Extensions for iOS](/ar/develop/unity-arf/quickstart-ios)"]]