// Update is called once per frame void Update() { if (activeBuilidingType != null) { if (Input.GetMouseButtonDown(0) && !EventSystem.current.IsPointerOverGameObject() && canspawn) { if (ResourceManager.Instance.CanAfford(activeBuilidingType.BuildingResourceCostArray)) { ResourceManager.Instance.SpendResourse(activeBuilidingType.BuildingResourceCostArray); Instantiate(activeBuilidingType.prefabs, UtilsClass.GetMousePostition(), Quaternion.identity); isClickFree = false; } } canSpawnBuilding(activeBuilidingType, UtilsClass.GetMousePostition()); if (Input.GetKeyDown(KeyCode.Mouse1)) { activeBuilidingType = null; isClickFree = true; OnActiveBuildingTypeChanged?.Invoke(this, new OnActiveBuildingTypeChangedEventArgs { activeBuilidingType = activeBuilidingType }); } } if (Input.GetKeyDown(KeyCode.Z)) { Vector3 enemyspawnpostion = UtilsClass.GetMousePostition() + UtilsClass.GetrandomDir() * 3f; Enemy.Create(enemyspawnpostion); } }
public void SetActivebuildintype(BuildingTypeso buildintype) { activeBuilidingType = buildintype; OnActiveBuildingTypeChanged?.Invoke(this, new OnActiveBuildingTypeChangedEventArgs { activeBuilidingType = activeBuilidingType }); }
private bool canSpawnBuilding(BuildingTypeso buildingTypeso, Vector3 pos) { BoxCollider2D boxCollider2D = buildingTypeso.prefabs.GetComponent <BoxCollider2D>(); Collider2D[] collider2DArray = Physics2D.OverlapBoxAll(pos + (Vector3)boxCollider2D.offset, boxCollider2D.size, 0); if (collider2DArray.Length == 0) { canspawn = true; } else { canspawn = false; } return(canspawn); }
private void Awake() { buildingTypeso = GetComponent <BuildingTypeHolder>().buildingType; healtAmountMax = buildingTypeso.maxHealthl; healthAmount = healtAmountMax; }