Hello, I’m trying to change the trackedImagePrefab depending on what image I’m tracking.
I’ve tried:
if (m_TrackedImageManager.referenceLibrary.name.Equals())
and
TrackedImageManager…name.Equals
But I can’t seem to get it to work, any ideas ?
THanks
You can get an array (I think it’s an array?) of image objects detected by the TrackedImageManager by using the OnTrackedImagesChanged function. Then just iterate through eventArgs.added ( foreach (var trackedImage in eventArgs.added)
) and check if trackedImage.name.Equals("Your Image Name")
.
That’s what I’m currently doing
void OnTrackedImagesChanged(ARTrackedImagesChangedEventArgs eventArgs)
{
foreach (var trackedImage in eventArgs.added)
{
// Give the initial image a reasonable default scale
trackedImage.transform.localScale = new Vector3(0.8f, 0.8f, 0.8f);
Debug.Log(trackedImage.name);
if (trackedImage.referenceImage.name == “Gnomo1”)
{
m_TrackedImageManager.trackedImagePrefab = Prefab1;
}
else if (trackedImage.referenceImage.name == “Gnomo2”)
{
m_TrackedImageManager.trackedImagePrefab = Prefab2;
}
//UpdateInfo(trackedImage);
}
}
But it doesn’t seem to work, it keeps using the default prefab set in the ImageTrackManager.