This repository has been archived on 2025-04-28. You can view files and clone it, but cannot push or open issues or pull requests.
ARPlusSystem/ARPlusSystem-250418/Library/PackageCache/com.unity.xr.arfoundation@4.../Documentation~/tracked-object-manager.md

35 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

---
uid: arfoundation-tracked-object-manager
---
# AR tracked object manager
The tracked object manager is a type of [trackable manager](trackable-managers.md).
![AR tracked object manager](images/ar-tracked-object-manager.png "AR tracked object manager")
The tracked object manager creates `GameObject`s for each detected object in the environment. Before an object can be detected, the manager must be instructed to look for a set of reference objects compiled into a reference image library. It only detects objects in this library.
## Reference library
For instructions on how to create a reference object library, see documentation on the [Tracked Object Subsystem](http://docs.unity3d.com/Packages/com.unity.xr.arsubsystems@4.2/manual/object-tracking.html).
The reference object library can be set at runtime, but as long as the tracked object manager component is enabled, the reference object library must be non-null.
The reference object library is an instance of the `ScriptableObject` `XRReferenceImageLibrary`. This object contains mostly Editor data. The actual library data (containing the object data) is provider-specific. Refer to your provider's documentation for details.
## Creating a manager at runtime
When you add a component to an active `GameObject` at runtime, Unity immediately invokes its `OnEnable` method. However, the `ARTrackedObjectManager` requires a non-null reference object library. If the reference object library is null when the `ARTrackedObjectManager` is enabled, it automatically disables itself.
To add an `ARTrackedObjectManager` at runtime, set its reference object library and then re-enable it:
```csharp
var manager = gameObject.AddComponent<ARTrackedObjectManager>();
manager.referenceLibrary = myLibrary;
manager.enabled = true;
```
## Tracked object Prefab
This Prefab is instantiated whenever an object from the reference object library is detected. The manager ensures the instantiated `GameObject` includes an `ARTrackedObject` component. You can get the reference object that was used to detect the `ARTrackedObject` with the `ARTrackedObject.referenceObject` property.