Migrating to Vuforia, Adding multitarget system

This commit is contained in:
Nicolas SANS
2023-04-18 15:40:00 +02:00
parent 38824485c0
commit ac5cb75407
49 changed files with 3772 additions and 99 deletions

View File

@ -40,6 +40,21 @@ public class MarkerTracker : MonoBehaviour
}
private void OnTrackedImagesChanged(ARTrackedImagesChangedEventArgs eventArgs)
{
foreach (var trackedImage in eventArgs.added)
{
foreach (var arPrefab in ArPrefabs)
{
if (arPrefab.name == trackedImage.referenceImage.name && !_instantiatedPrefabs.ContainsKey(ArPrefabs[0].name))
{
Debug.Log("New" + ArPrefabs[0].name);
var newPrefab = Instantiate(ArPrefabs[0], trackedImage.transform);
_instantiatedPrefabs.Add(ArPrefabs[0].name, newPrefab);
return;
}
}
}
foreach (var trackedImage in eventArgs.updated)
{
// var imageName = trackedImage.referenceImage.name;
@ -53,19 +68,33 @@ public class MarkerTracker : MonoBehaviour
// }
// }
// }
Debug.Log(_instantiatedPrefabs.Keys);
if (_instantiatedPrefabs.ContainsKey(trackedImage.referenceImage.name))
//Debug.Log("Updated : " + trackedImage.referenceImage.name);
//_instantiatedPrefabs[trackedImage.referenceImage.name].SetActive(trackedImage.trackingState == TrackingState.Tracking);
foreach (var existingPrefab in _instantiatedPrefabs)
{
_instantiatedPrefabs[trackedImage.referenceImage.name].SetActive(trackedImage.trackingState == TrackingState.Tracking);
if (existingPrefab.Key == trackedImage.referenceImage.name)
{
_instantiatedPrefabs[trackedImage.referenceImage.name].SetActive(trackedImage.trackingState == TrackingState.Tracking);
}
}
}
foreach (var trackedImage in eventArgs.removed) {
// Destroy its prefab
Destroy(_instantiatedPrefabs[trackedImage.referenceImage.name]);
// Destroy its prefabDestroy(_instantiatedPrefabs[trackedImage.referenceImage.name]);
foreach (var existingPrefab in _instantiatedPrefabs)
{
if (existingPrefab.Key == trackedImage.referenceImage.name)
{
Debug.Log("Deleted : " + existingPrefab.Key);
_instantiatedPrefabs[trackedImage.referenceImage.name].SetActive(false);
}
}
// Also remove the instance from our array
_instantiatedPrefabs.Remove(trackedImage.referenceImage.name);
//Debug.Log("Deleted : " + trackedImage.referenceImage.name);
//_instantiatedPrefabs.Remove(trackedImage.referenceImage.name);
// Or, simply set the prefab instance to inactive
//_instantiatedPrefabs[trackedImage.referenceImage.name].SetActive(false);
}