
오늘은 프로젝트 마지막날로 잔버그들을 찾아 수정하는 작업을 하였다.
Unity 프로젝트에서 다이아몬드라는 재화를 관리하는 코드를 작성했습니다. 이 작업에서는 다이아몬드의 양에 따라 버튼의 활성화/비활성화를 구현하는 로직을 설계했습니다.
Diamond 클래스를 작성하여 다이아몬드의 증가, 감소 및 충분한 다이아몬드 양이 있는지를 확인하는 메서드들을 구현했습니다. OnDiamondChanged 이벤트를 사용하여 다이아몬드 양이 변경될 때마다 UI를 업데이트하도록 했습니다.
UI 업데이트 및 버튼 활성화 상태 관리:
다이아몬드의 양에 따라 버튼의 활성화 상태를 실시간으로 갱신하는 로직을 UpdateUpgradeCostUI 메서드에 추가했습니다. 이 메서드에서 업그레이드 비용을 계산하고, 다이아몬드가 충분한지 확인한 후 버튼을 활성화/비활성화합니다.
UnlockArtifact와 UpgradeArtifact 메서드에서 다이아몬드의 감소와 UI 업데이트를 연결하여, 다이아몬드 사용 후 버튼의 상태가 자동으로 갱신되도록 구현했습니다.
public void UpdateUpgradeCostUI()
{
if (upgradeCostText != null)
{
if (currentLevel >= 10)
{
upgradeCostText.text = "최대 레벨";
upgradeButton.interactable = false;
}
else
{
BigInteger nextCost = currentLevel > 0 ? CalculateUpgradeCost(currentLevel) : unlockCost;
upgradeCostText.text = BigIntegerUtils.FormatBigInteger(nextCost);
// 다이아몬드가 충분한지 확인하고 버튼의 활성화 상태를 설정
bool hasSufficientDiamond = LifeManager.Instance.diamond.HasSufficientDiamond(nextCost);
upgradeButton.interactable = hasSufficientDiamond;
}
}
}
오늘은 Unity 프로젝트에서 중요한 재화 관리 및 UI 시스템을 개선하는 작업을 했습니다. 특히, 다이아몬드 양에 따라 UI가 실시간으로 반응하도록 설정한 점이 큰 성과라고 생각합니다. 다이아몬드의 양이 바뀔 때마다 이벤트를 통해 UI를 업데이트함으로써 코드의 효율성을 높였고, 추상 클래스 구조를 사용하여 다양한 아티팩트를 유연하게 관리할 수 있도록 했습니다.
지금 현재 최종프로젝트를 원스토어에 출시를 완료하였고, 또한 구글플레이에도 출시를 할 예정이다. 심사중..
https://m.onestore.co.kr/mobilepoc/apps/appsDetail.omp?prodId=0000778172