Migrating to Vuforia, Adding multitarget system
This commit is contained in:
@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user