Chocolate Chip Cookie
본문 바로가기
Unity게임

[Unity] 비밀번호 input 한글 오류 해결

by Khookie 2023. 12. 15.
문제 상황과 해결과제 ::
- 프로젝트 정책상 비밀번호를 한글로도 입력 가능
- 유니티 제공 TMP inputfield contentType 을 password 로 할 시 한글은 *개수가 문자 수와 상이한 문제 발생
- 로그인 시 본래 입력 값 저장 및 입력값을 *로 대치하기 

 

원인 ::

- 유니티가 한글과 같은 복합언어를 아직 password 타입으로 섬세하게 지원하지 않음

- 한글은 영어와 달리 한글 음절이 복합 문자로 표현되어, 각각의 자음과 모음이 따로 처리되어야 함

 

시도::

-> 인풋에 입력을 받고 *로 변환해 보여준 후 원래값을 따로 저장해 서버에 넘겨주기

=> 유니티 컬백 메소드가 다소 한정적이라 수시로 인풋값이 *로 대체되기 때문에 원래 값을 저장하기가 어려워짐

=> 정책상 *도 입력 가능 비밀번호라 구분이 모호


-> 레거시 인풋으로 바꿈

=> 복합문자 하나를 * 하나로 대치해버려서 임의로 ui 변경 필요  ("가"  입력시 ** 로 처리되어야한다 )


-> 본래 인풋 글자를 투명으로 바꾸고 임의로  *로 마스킹한 텍스트를 겹쳐서 배치 시킴

  => 복합문자를 초성 중성 종성 뿐 아니라 자모로 분리하여 해결 가능해 보였으나 아래와 같은 추가 문제 발생
  => 커서위치 맞지 않게 됨( * 과 텍스트 종류별 크기가 모두 상이함)
  => 한글은 유니티 value changed 이벤트 자체에서 한박자 늦게 처리 됨

 

이처럼 까다로운 여러 문제가 생기고 있다가 아래 글을 참조하여 모든 비밀번호를 텍스트가 아닌 영문 문자로 받는 방향으로 수정해 해결하였다

 

https://run-a-way.tistory.com/70

 

[Unity] password input field 에 대한 고찰 (IME 사용법)

log in UI 부분은 개발하고 손뗀지 오래되었는데, QA 에서 다시한번 검토해 달라는 요청이 왔다. id 쪽은 문제 없는데... password가 문제. inputFiled 세팅을 잘못해 주었는지 한글이 마구 들어가는 것이

run-a-way.tistory.com

 

댓글