유니티 엔진 - 게임 프로젝트/데디케이트 기반 모바일 게임

로그인 처리 - 1) 로그인 UI 구성

monstro 2025. 11. 11. 20:07
728x90
반응형

- 개요

 

위와 같이 로그인 UI를 구성한다

강조한 부분을 중점적으로 구현하며 사용자이름과 비밀번호를 문제없이 입력하면 로그인 버튼이 활성화되고,

입력한 사용자이름과 비밀번호에 문제가 있다면 적합한 에러 메세지를 발생시킨다

 

- 코드 구성

1) UI_Base 클래스

Bind 함수 수정

 

Bind 함수를 위와 같이 수정하여 기존에 존재하는 Key의 인스턴스들을 바인드하는 경우와

새로운 Key의 인스턴스들을 바인드하는 경우를 분리하여 처리한다

 

 

GetEnumFullName 함수를 새롭게 추가한다

로직은 위와 같이 열거형의 멤버를 인자로 받아 "열거형.멤버" 형태의 문자열을 반환한다

해당 함수를 사용하여 특정 UI안에 포함된 열거형의 멤버들임의의 값과 연결할 수 있다

 

 

GenerateEnumsSerialNumber 함수를 새롭게 추가한다

UI_Base 클래스를 상속받은 클래스에서만 사용할 수 있으며,

인자로 받은 딕셔너리에 해당 함수를 호출한 클래스에 포함된 열거형의 멤버 + 정수값을 저장한다

 

2) UI_Login 클래스

 

위와 같이 멤버변수를 추가한다

구성은 다음과 같다

  • enumNumbers 딕셔너리 : 포함된 열거형 멤버들연결된 정수값을 저장
  • _userName 멤버변수 + _password 멤버변수 : 입력 UI에 입력한 값을 저장
  • maxUserNameLength 멤버변수 + maxPasswordLength 멤버변수 : 최대 입력 범위
  • GameObjects_Btn 열거형 : Button 컴포넌트를 가진 오브젝트를 지정
  • GameObjects_Input 열거형 : TMP_InputField 컴포넌트를 가진 오브젝트를 지정
  • GameObjects_Text 열거형 : TMP_Text 컴포넌트를 가진 오브젝트를 지정

 

 

Awake 함수의 로직은 위와 같다

GenerateEnumsSerialNumber 함수를 호출하여

UI_Login 클래스 내부의 열거형의 멤버들정수값과 연결하여 enumNumbers에 저장한다

이후 열거형의 멤버들을 GameObject로 바인드한다

 

 

Start 함수의 로직은 위와 같다

enumNumbers에 저장된 열거형의 멤버들과 연결된 정수값을 사용하여 바인드된 오브젝트들을 탐색하여 로직을 수행한다

  • GameObjects_Text 열거형 : 에러메세지 비활성화
  • GameObjects_Btn 열거형
    • Btn_Login 멤버 : Login 이벤트 함수 연결
  • GameObjects_Input 열거형
    • Input_UserName 멤버 : UpdateUserName 이벤트 함수 연결
    • Input_Password 멤버 : UpdatePassword 이벤트 함수 연결

 

이벤트 함수의 구성

 

이벤트 함수들을 위와 같이 구성한다

Login 함수의 경우 별다른 로직이 없지만,

UpdateUserName 함수 UpdatePassword 함수입력값캐싱하고 ValidateAndUpdateUI 함수를 호출한다

 

 

ValidateAndUpdateUI 함수의 로직은 위와 같다

정규표현식을 사용하여 플레이어의 이름이 영어 소문자 + 대문자만을 사용하고 0~9까지의 범위를 지녔는지 확인한다

이후 조건을 판단하고 해당 조건을 매개변수로 하여 EnableLoggingButton 함수를 호출한다

이후 플레이어의 이름 + 비밀번호 입력값의 길이를 판단하고 적합한 에러 메세지를 팝업한다

 

 

EnableLoggingButton 함수의 로직은 위와 같다

GameObject로 바인드된 Btn_Login 오브젝트를 가져오고

해당 오브젝트의 interactable 속성과 color 속성을 설정한다

 

- 최종 실행 결과

 

728x90
반응형