✅ 작업한 내용
- 입금 UI 구성 (STEP 5)
- Deposit 오브젝트 구성
- Vertical Layout Group + Content Size Fitter로 버튼 정렬
- 10,000 / 30,000 / 50,000 버튼 + 직접 입력 InputField + 뒤로 가기 버튼 구성
- 출금 UI 구성 (STEP 6)
- Withdraw 오브젝트 구성
- 입금 UI와 동일한 구조로 출금 화면 구성
- UI 전환 기능 구현 (STEP 7)
- PopupBank.cs에 ShowATM(), ShowDeposit(), ShowWithdraw() 함수 작성
- 버튼 이벤트에 OnClick()으로 연결
- Start()에서 ShowATM() 호출로 기본화면 설정
- 버튼을 통한 입금 기능 구현 (STEP 8)
- Deposit(int amount) 메서드에서 금액 계산 및 UI 갱신 처리
- cashDisplay, balanceDisplay의 Refresh() 호출로 UI 반영
- 직접 입력 입금 구현 (STEP 9)
- InputField에서 텍스트 받아 int.TryParse()로 숫자 변환
- 금액이 0보다 작거나 현금 부족 시 입금 불가 처리
- 숫자 외 입력 차단: InputField.ContentType = Integer Number
- 출금 기능 구현 + 팝업 경고 (STEP 10)
- Withdrawal(int amount), WithdrawalInput() 메서드 구현
- 출금 금액이 잔액보다 많으면 popupErrorUI.SetActive(true)로 경고 표시
- 팝업 확인 버튼 누르면 SetActive(false) 처리
- 입금/출금 각각의 InputField 따로 선언 및 연결 (depositInputField, withdrawInputField)
🧠 배운 점
- UI를 일관되게 정렬하려면 Vertical Layout Group를 사용하는 것이 좋다.
- Unity에서 InputField는 ContentType = Integer Number로 설정하면 숫자 외 입력을 막을 수 있다.
- 버튼에 OnClick 이벤트로 매개변수가 있는 함수를 연결하면 동적으로 값을 전달할 수 있어 유연한 동작 구현이 가능하다.
- 하나의 스크립트에서 여러 UI 오브젝트(InputField 등)를 다룰 때는 필드를 나눠서 명확하게 연결해야 충돌을 방지할 수 있다.
- 팝업 UI는 SetActive(true/false)로 간단히 상태를 전환할 수 있으며, UI 충돌 방지를 위해 기본 화면 전환 로직(ShowATM())도 잘 활용해야 한다.
- 출금 / 입금 시 조건문으로 금액 유효성(0 이상, 충분한 잔액 등)을 먼저 체크해야 UI나 게임 흐름이 꼬이지 않는다.
'TIL' 카테고리의 다른 글
ATM 로그인 및 회원가입 기능 구현 (1) | 2025.06.12 |
---|---|
ATM 유저 데이터(Json) 저장 및 불러오기 기능 구현 (0) | 2025.06.12 |
ATM 시스템 UI 구성 및 데이터 연동 구현 (1) | 2025.06.05 |
점수 시스템 도입 및 게임 흐름 연동 정리 (1) | 2025.05.31 |
Pause / GameOver UI 기능 안정화 및 반복 사용 대응 개선 (0) | 2025.05.29 |