✅ 오늘의 목표 !
- 전체 cost : 임시로 3초마다 cost가 5씩 늘어나게 하고, 최대 50까지
- 유닛이 배치되면 유닛의 cost값 만큼 전체에서 차감
- 전체cost가 유닛의 cost값보다 적으면 배치될 수 없게 함
- TextMeshProUGUI를 사용하여 변동사항을 string으로 적용

Cost 스크립트에서는 cost가 3초마다 5씩 증가하게 되는 코드를 작성하였다
-> 유닛을 구매하면 코스트가 차감되는 건 static으로 선언했기에 다른 스크립트에 작성하였음

- 코루틴(Coroutine) : Update( )문 밖에서도 반복적으로 실행해야할 로직이 있을때 사용 가능한 방법
-> 내가 코루틴을 사용한 이유는, cost가 3초에 한번씩 5만큼 증가하게 짜고싶었기 때문이다
-> 3초마다 함수가 실행되어야함
->yield return new WaitForSeconds( float ); 사용
-> 매개변수로 들어온 값만큼 기다렸다가 코드 실행


- UnitSlot 스크립트는 해당하는 위치의 유닛을 클릭하면 해당 유닛의 코스트만큼 전체 코스트에서 차감하여 구매
- 유닛 구매창의 유닛 스프라이트 활성화 시키기
public class UnitSlot : MonoBehaviour
{
public Sprite unitSprite; // 유닛 이미지
public GameObject unitObject; // 유닛 객체
public Image icon; // 유닛 이미지
public int costco;
public TextMeshProUGUI costText;
// GameManager 스크립트
private TileManager tileManager;
// UnitStat 스크립트
private UnitStat unitStat;
private Cost Cost;
private void Start()
{
tileManager =
GameObject.Find("TileManager").GetComponent<TileManager>();
GetComponent<Button>().onClick.AddListener(BuyUnit);
}
타일매니저의 BuyUnit함수를 실행하여 유닛을 구매하면 전체 코스트에서 선택된 유닛의 코스트(costco)만큼 차감되도록 하였다
게임씬에서 확인하기 위해 text를 totalCost.ToString( )으로 갱신시켰다
✅ToString( )
// 유닛 구매
private void BuyUnit()
{
// totalcost > Unit.cost 일때만 실행
if (costco <= Cost.totalCost)
{
tileManager.BuyUnit(unitObject, unitSprite);
// 전체 cost에서 각각의 유닛 차감
Cost.totalCost -= costco;
// Hierarchy창에서 Total_Cost_Text 오브젝트 찾아서 코스트 갱신
GameObject.Find("Total_Cost_Text").GetComponent<TextMeshProUGUI>().text =
Cost.totalCost.ToString();
}
else
{
Debug.Log("No Create");
}
// Debug.Log(Cost.totalCost);
}