// Remove unitmarker of given unit and put it back in the pool private void RemoveUnitWaypointMarker(UnitWaypoint unitWaypoint) { UnitWaypointMarker unitMarker = unitWaypointMarkers[unitWaypoint]; unitMarker.Deactivate(); unitWaypointMarkers.Remove(unitWaypoint); unitWaypoints.Remove(unitWaypoint); unitWaypointMarkerPool.Add(unitMarker); }
// Add unitmarker for given unit private void AddUnitWaypointMarker(UnitWaypoint unitWaypoint) { if (unitWaypointMarkerPool.Count == 0) { MakeNewUnitWaypointMarker(); } UnitWaypointMarker unitWaypointMarker = unitWaypointMarkerPool[0]; unitWaypointMarkerPool.Remove(unitWaypointMarker); unitWaypointMarker.Setup(unitWaypoint); unitWaypoints.Add(unitWaypoint); unitWaypointMarkers.Add(unitWaypoint, unitWaypointMarker); }
// Instantiate new unitmarker and add it to the pool private void MakeNewUnitWaypointMarker() { UnitWaypointMarker newUnitWaypointMarker = Instantiate(unitWaypointMarkerPrefab, transform).GetComponent <UnitWaypointMarker>(); unitWaypointMarkerPool.Add(newUnitWaypointMarker); }