예제 #1
0
 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);
        }