/** * <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(); }
private void OnEnable() { Target = (BuilderBehaviour)target; MainEditor.LoadAddons(Target, AddOnTarget.BuilderBehaviour); }