private static void AssignMouseEvents(Transform buttonTransform, BuildingTypeSo buildingType) { var mouseEnterExitEvents = buttonTransform.GetComponent <MouseEnterExitEvents>(); mouseEnterExitEvents.OnMouseEnter += (sender, e) => { TooltipUI.Instance.Show($"{buildingType.nameString}\n{buildingType.GetConstructionResourceCostString()}"); }; mouseEnterExitEvents.OnMouseExit += (sender, e) => { TooltipUI.Instance.Hide(); }; }
private void Update() { if (Input.GetMouseButtonDown(0) && !EventSystem.current.IsPointerOverGameObject()) { if (_activeBuildingType != null) { if (CanSpawnBuilding(_activeBuildingType, Utilities.GetMouseWorldPosition(), out string errorMessage)) { if (ResourceManager.Instance.CanAfford(_activeBuildingType.constructionResourceCostArray)) { ResourceManager.Instance.SpendResources(_activeBuildingType.constructionResourceCostArray); //Instantiate(_activeBuildingType.prefab, Utilities.GetMouseWorldPosition(), Quaternion.identity); BuildingConstruction.Create(Utilities.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 }); } } else { TooltipUI.Instance.Show("Choose building type first!", new TooltipUI.TooltipTimer { timer = 2f }); } } }