public void AddTargetMarker(FirePositionMarker wp) { if (!firePositionMarkers.Contains(wp)) { SubscribeOnDestruction(wp.GetInstanceID().ToString(), () => RemoveTargetMarker(wp)); this.firePositionMarkers.Add(wp); } }
private void RemoveTargetMarker(FirePositionMarker wp) { if (firePositionMarkers.Contains(wp)) { firePositionMarkers.Remove(wp); UnsubscribeOnDestruction(wp.GetInstanceID().ToString()); wp.DestroyThis(); } }
public static FirePositionMarker CreateFirePositionMarker(Vector3 worldPosition, float radius) { FirePositionMarker res = Instantiate <FirePositionMarker>( GameObject.Find("ResourcesList").GetComponent <ResourcesListComponent>().firePositionMarkerPrefab, GameObject.Find("UI World Canvas").transform); res.Init(worldPosition, radius); return(res); }
private void OnPointerClickDelegate(PointerEventData data) { if (!paused) { if (isEditing) { if (UIHandler.EventSystemPointedGameObjects().Count > 1) { ExitPlacementUIMode(); ConfirmPositioning(false); DestroyThis(); } else { AddTargetMarker(FirePositionMarker.CreateFirePositionMarker(GetWorldPosition(), 10f)); if (!Input.GetKey(KeyCode.LeftShift)) { ExitPlacementUIMode(); ConfirmPositioning(true); } } } else { if (expanded) { SelectionHandler.GetUsedSelector().DeselectEntity(this); expanded = false; //Contract(); } else { SelectionHandler.GetUsedSelector().SelectEntity(this); expanded = true; //Expand(); } } } }