using UnityEngine;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
public class ImageAnchorSpawner : MonoBehaviour
{
public ARTrackedImageManager imageManager;
public ARAnchorManager anchorManager;
public GameObject instantiatedPrefab;
public GameObject instantiatedPrefab2;
public UIDocument documentDebug;
public Label labelDebug;
private Dictionary<string, GameObject> instantiatedPrefabs = new();
void Awake()
{
VisualElement root = [Link];
if (root != null)
{
labelDebug = root.Q<Label>("valid");
if (labelDebug != null)
{
[Link] = "Hello World";
}
}
}
void OnEnable()
{
[Link](OnTrackedImagesChanged);
}
void OnDisable()
{
[Link](OnTrackedImagesChanged);
}
async void OnTrackedImagesChanged(ARTrackablesChangedEventArgs<ARTrackedImage>
args)
{
// [Link] += "\nOnTrackedImagesChanged";
foreach (var trackedImage in [Link])
{
// [Link] += "\nAdded TrackedImage: " + [Link];
// [Link]("Added TrackedImage: " + [Link]);
await TrySpawnPrefab(trackedImage);
}
foreach (var trackedImage in [Link])
{
// [Link] += "\nUpdated TrackedImage: " + [Link];
// [Link]("Updated TrackedImage: " + [Link]);
await TrySpawnPrefab(trackedImage);
}
foreach (var trackedImage in [Link])
{
// [Link] += "\nRemoved TrackedImage: " + [Link];
// [Link]("Removed TrackedImage: " + [Link]);
}
}
async Task TrySpawnPrefab(ARTrackedImage trackedImage)
{
if ([Link] != [Link])
return;
if ([Link]([Link]))
return;
Pose pose = new Pose([Link],
[Link]);
var result = await [Link](pose);
if ([Link]())
{
var anchor = [Link];
GameObject prefab = Instantiate(instantiatedPrefab);
[Link]([Link], false);
// [Link] += $"\nPrefab spawned on image
'{[Link]}'";
[Link]([Link], prefab);
[Link] = false;
}
else
{
// [Link] += $"\nFailed to create anchor on image
'{[Link]}' : {[Link]}";
}
}
}