Unity 개발일지

[Unity] InputField(TMP) 로그인 기능 구현 본문

Unity 개발

[Unity] InputField(TMP) 로그인 기능 구현

아머르 2024. 5. 13. 22:18

 

 

 

 

우선 UI를 이용해 Image와 Button UI로 LoginScene을 하나 만들어주었다.

참고로 UI는 Canvas에서 위에있는 쪽이 먼저 생성되어 아래쪽에 깔리게된다.

플레이어 이름을 입력하는 칸은 InputField(TMP)이다.

 

 

InputField를 만들게 되면 InputField와 자식오브젝트로 TextArea에 Placeholder, Text가 생성된다.

InputField에는 OnEndEdit(String)부분만 나중에 Script작성 후 손봐줄 예정이고,

Placeholder는 아무것도 입력하지 않았을 시 Default Message를 입력할 수 있다.

Text는 플레이어의 입력을 받아 출력해준다.

 

 

Button을 이용할 것이기 때문에 SrartBtn 스크립트를 만들어주었고,

TMP_InputField를 선언해주었다. ( TMP_ 를 붙어야한다! )

기존에는 InputField와 InputField(TMP) 두가지가 있었는데 TMP로 통합이 되면서 TMP_InputField로 바뀌었다.

playerName은 Rtan으로 초기화시켜주었다.

 

 

이제 InputField(TMP)의 On End Edit에 들어갈 코드를 작성해주자.

 

PlayerPrefs 함수는 플레이어의 이름과 같은 데이터를 저장할 때 사용한다.

 

InputField에서는 플레이어가 입력 완료 후 Enter키를 입력하면 입력한 내용이 전체선택이 되는데

DeactivateInputField 함수로 입력 필드에서 포커스를 제거하여 사용자의 입력을 비활성화 해줬다.

일반적으로 텍스트 입력이 완료되거나 더 이상 필요하지 않을 때 호출된다.

이를 이용해 Enter키를 입력하여 키보드로도 확인 버튼을 누를 수 있도록 해주었다.

 

if문에 처음에 KeyCode.Return이 눌리지 않았을 때는 Return하도록 해줘 납치당하는 일을 방지했다.

 

 

버튼에 붙여줄 StartGame 함수를 마저 작성해준다.

 

 

Player의 머리 위에 Text UI를 생성하고 스크립트를 넣어주었다.

 

 

각각의 오브젝트에 컴포넌트와 코드들을 입혀주고 실행해주면 끝!

Enter 키를 입력해도 잘 작동한다.

반응형