private void Awake() { // populate the coordinate lists for the click hotspots clickXCoords = new List <float>(); clickYCoords = new List <float>(); foreach (GameObject go in markerXCoords) { clickXCoords.Add(go.transform.position.x); GameObject.Destroy(go); } foreach (GameObject go in markerYCoords) { clickYCoords.Add(go.transform.position.y); GameObject.Destroy(go); } // find and cache sprite renderers for the various markers SpriteRenderer[] tempSprites = GetComponentsInChildren <SpriteRenderer>(); dayMarkerSR = tempSprites[1]; dayMarkerSR.transform.position = new Vector2(clickXCoords[0], clickYCoords[0]); loopMarkerSR = tempSprites[2]; loopMarkerSR.transform.position = new Vector2(clickXCoords[2], clickYCoords[0]); extraMarkerSR = tempSprites[3]; extraMarkerSR.gameObject.SetActive(false); // setup the first incident marker and the list for new ones IncidentMarker im = new IncidentMarker { marker = tempSprites[4].gameObject, position = -1 }; incidentMarkers.Add(im); incidentMarkers[0].marker.SetActive(false); }
private IncidentMarker GetFreeIncidentMarker() { foreach (IncidentMarker im in incidentMarkers) { if (im.marker.activeSelf == false) { im.marker.SetActive(true); return(im); } } // no inactive incident markers, so make a new one. We know index zero always exists. GameObject newMarker = GameObject.Instantiate(incidentMarkers[0].marker, this.transform); IncidentMarker newIM = new IncidentMarker { marker = newMarker, position = -1 }; incidentMarkers.Add(newIM); return(newIM); }