void Update() { if (Input.GetMouseButtonDown(0) && !EventSystem.current.IsPointerOverGameObject()) { if (_activeBuildingType != null) { if (CanSpawnBuilding(_activeBuildingType, UtilsClass.GetMouseWorldPosition(), out string errorMessage)) { if (ResourceManager.Instance.CanAfford(_activeBuildingType.constructionResourceCostArray)) { ResourceManager.Instance.SpendResources(_activeBuildingType.constructionResourceCostArray); BuildingConstruction.Create(UtilsClass.GetMouseWorldPosition(), _activeBuildingType); SoundManager.Instance.PlaySound(SoundManager.Sound.BuildingPlaced); } else { TooltipUI.Instance.Show("Cannot afford " + _activeBuildingType.GetConstructionResourceCostString(), new TooltipUI.TooltipTimer { Timer = 2f }); } } else { TooltipUI.Instance.Show(errorMessage, new TooltipUI.TooltipTimer { Timer = 2f }); } } } }
public static BuildingConstruction Create(Vector3 position, BuildingTypeSO buildingType) { Transform pfBuildingConstruction = Resources.Load <Transform>("pfBuildingConstruction"); Transform buildingConstructionTransform = Instantiate(pfBuildingConstruction, position, Quaternion.identity); BuildingConstruction buildingConstruction = buildingConstructionTransform.GetComponent <BuildingConstruction>(); buildingConstruction.SetBuildingType(buildingType); return(buildingConstruction); }