TIL(2024,08,21)최종 프로젝트 1차구현 하나씩 만들기

김보근·2024년 8월 21일

Unity

목록 보기
69/113
post-thumbnail

TIL(Today I Learned)

작업내용

오늘은 프로젝트 마지막날로 잔버그들을 찾아 수정하는 작업을 하였다.

Unity 프로젝트에서 다이아몬드 재화 관리 및 UI 연동:

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

profile
게임개발자꿈나무

0개의 댓글