// Update is called once per frame private void Update() { this.OnMiddleButtonScroll(); if (Input.GetKeyDown(KeyCode.M)) { NavMeshSurfacesManager.BuildNavMesh(); } if (Input.GetKeyDown(KeyCode.P)) { Debug.Break(); } // On left mouse clicked if (Input.GetMouseButtonDown(0)) { this.OnLeftMouseClicked(); } // On right mouse clicked else if (Input.GetMouseButtonDown(1)) { this.OnRightMouseClicked(); } // On left mouse button up if (Input.GetMouseButtonUp(0)) { this.OnLeftMouseUp(); } }
/** * <summary> * Instantiate and eventually place the building * </summary> * * <param name="position"/> * * <returns> * void * </returns> */ public virtual void Place(Vector3 position) { foreach (GameObject selectedUnit in UnitsManagerBehaviour.SelectedUnits) { if (selectedUnit.GetComponent <BuilderBehaviour>()) { GameObject building = MonoBehaviour.Instantiate( Resources.Load(this.structurePath) as GameObject ); // Substract / reduce resources foreach (ResourceRequirement resourceRequirement in this.resourceRequirements) { ResourceType resourceRequirementType = resourceRequirement.GetType(); float value = ResourcesManagerBehaviour.Wood.GetValue() - resourceRequirement.GetAmount(); ResourcesManagerBehaviour.SetResource(resourceRequirementType, value); } building.transform.position = position; BuilderBehaviour builderBehaviour = selectedUnit.GetComponent <BuilderBehaviour>(); builderBehaviour.StartConstruction(building); } } // Hide the requirement UI this.HideRequirementsUI(); // Rebuild navmesh navigations NavMeshSurfacesManager.BuildNavMesh(); }
public void OnPointerClick(PointerEventData pointerEventData) { if (pointerEventData.button == PointerEventData.InputButton.Left) { GameObject selectedObject = BuildingsManagerBehaviour.SelectedBuilding; BuildingsManagerBehaviour.UnselectBuilding(); MonoBehaviour.Destroy(selectedObject); NavMeshSurfacesManager.BuildNavMesh(); } }
/** * <summary> * On game object destroyed * </summary> * * <returns> * void * </returns> */ private void OnDestroy() { if (NavMeshSurfacesManager.IsInitialized()) { NavMeshSurfacesManager.BuildNavMesh(); } if (!this && ResourcesManagerBehaviour.SelectedResource == this.gameObject) { ResourcesManagerBehaviour.UnselectResource(); } // On destroy removes the resource from visible list. ResourcesManagerBehaviour.Visibles.RemoveAll(active => active.GetInstanceID() == this.gameObject.GetInstanceID()); ResourcesManagerBehaviour.Resources.RemoveAll(active => active.GetInstanceID() == this.gameObject.GetInstanceID()); }
private void Awake() { Self = this; }
/** * <summary> * Build navmesh * </summary> * * <returns> * void * </returns> */ public static void BuildNavMesh() { Self.StartCoroutine(NavMeshSurfacesManager.Build()); }