private void AddNewMarker(Vector3 mousePosition, int markerId) { // put new marker between the emulator collider and IdSelector mousePosition.z = -1; EmulatedMarker newMarker = Instantiate(markerSprites[markerId], mousePosition, Quaternion.identity, transform).GetComponent <EmulatedMarker>(); newMarker.marker = new Marker(0, _markerId, uniqueId++, mousePosition); existingMarkers.Add(newMarker); trackingHandler.onDetectedEvent.Invoke(newMarker.marker); }
public void OnExistingClicked(EmulatedMarker clickedMarker) { if (clickedMarker.hidden) { UnhideMarker(clickedMarker); } else { HideMarker(clickedMarker); } }
private EmulatedMarker CheckCollisionWithExistingMarker(Vector3 mousePosition) { EmulatedMarker existingMarker = null; // check collision with exsting marker for (int i = existingMarkers.Count - 1; i >= 0; i--) { // trigger onLost event if clicked in existing marker if (existingMarkers[i].transform.GetComponent <Collider2D>().bounds.Contains(mousePosition)) { existingMarker = existingMarkers[i]; } } return(existingMarker); }
private void UnhideMarker(EmulatedMarker hiddenMarker) { hiddenMarker.Unhide(); hiddenMarkers.Remove(hiddenMarker); trackingHandler.onRedetectedEvent.Invoke(hiddenMarker.marker); }
private void HideMarker(EmulatedMarker marker) { trackingHandler.onLostEvent.Invoke(marker.marker); marker.Hide(); hiddenMarkers.Add(marker); }
private void RemoveMarker(EmulatedMarker markerToRemove) { existingMarkers.Remove(markerToRemove); markerToRemove.Remove(); }