public void OnTargetFound(DiceId found){ if (OnGlobalTargetFoundCallback != null) { OnGlobalTargetFoundCallback (found); } Debug.Log ("OnTargetFound "+found.ToString()); //if we already tracking the dice (compare markers to determine the best match [i.e. the marker on top]) if (currentlyTracking.ContainsKey (found.diceIdx)) { //yes we do a quick search every time we find a new marker already in the system (we could optimize this search by caching or passing in the refs) DefaultTrackableEventHandler newlyFoundMarkerObj = FindMarkerObject (found.diceIdx); DefaultTrackableEventHandler alreadyCachedMarkerObj = FindMarkerObject (currentlyTracking [found.diceIdx].markerId); if(newlyFoundMarkerObj.MarkerID == alreadyCachedMarkerObj.MarkerID){ Debug.LogError ("We are treating a marker we already found and cached as a new marker never seen before... ERROR. This is a sanity check."); } else { //udpate the found image we are tracking for a give die //FOR THE MOMENT NEW ONE ALWAYS WINS// currentlyTracking[found.diceIdx] = found; Debug.Log ("Update die[" + found.diceIdx + "] w/ "+found.type); } //if we are not tracking the die yet just ad it to the tracking dictionary } else { currentlyTracking.Add (found.diceIdx, found); } if(displayDebugText){ UpdateDebugText (); } }
public void OnTargetLost(DiceId lost){ if (OnGlobalTargetLostCallback != null) { OnGlobalTargetLostCallback (lost); } Debug.Log ("OnTargetLost "+lost.ToString()); if (currentlyTracking.ContainsKey (lost.diceIdx)) { currentlyTracking.Remove (lost.diceIdx); } else { Debug.LogWarning ("weirdly doesnt contain "+lost.ToString()+" as a tracked marker"); } if(displayDebugText){ UpdateDebugText (); } }