문제 상황과 해결과제 ::
- 프로젝트 정책상 비밀번호를 한글로도 입력 가능
- 유니티 제공 TMP inputfield contentType 을 password 로 할 시 한글은 *개수가 문자 수와 상이한 문제 발생
- 로그인 시 본래 입력 값 저장 및 입력값을 *로 대치하기
원인 ::
- 유니티가 한글과 같은 복합언어를 아직 password 타입으로 섬세하게 지원하지 않음
- 한글은 영어와 달리 한글 음절이 복합 문자로 표현되어, 각각의 자음과 모음이 따로 처리되어야 함
시도::
-> 인풋에 입력을 받고 *로 변환해 보여준 후 원래값을 따로 저장해 서버에 넘겨주기
=> 유니티 컬백 메소드가 다소 한정적이라 수시로 인풋값이 *로 대체되기 때문에 원래 값을 저장하기가 어려워짐
=> 정책상 *도 입력 가능 비밀번호라 구분이 모호
-> 레거시 인풋으로 바꿈
=> 복합문자 하나를 * 하나로 대치해버려서 임의로 ui 변경 필요 ("가" 입력시 ** 로 처리되어야한다 )
-> 본래 인풋 글자를 투명으로 바꾸고 임의로 *로 마스킹한 텍스트를 겹쳐서 배치 시킴
=> 복합문자를 초성 중성 종성 뿐 아니라 자모로 분리하여 해결 가능해 보였으나 아래와 같은 추가 문제 발생
=> 커서위치 맞지 않게 됨( * 과 텍스트 종류별 크기가 모두 상이함)
=> 한글은 유니티 value changed 이벤트 자체에서 한박자 늦게 처리 됨
이처럼 까다로운 여러 문제가 생기고 있다가 아래 글을 참조하여 모든 비밀번호를 텍스트가 아닌 영문 문자로 받는 방향으로 수정해 해결하였다
https://run-a-way.tistory.com/70
'Unity게임' 카테고리의 다른 글
유니티 WebGL 오류 Build.framework.js.gz (0) | 2024.01.06 |
---|---|
유니티 WebGL 빌드시 필수, 한글 입력 지원하려면? (1) | 2024.01.04 |
[C#] Enum 변수의 초기상태와 첫번째 값간의 구별 (2) | 2023.11.25 |
유니티 협업 Scene.unity 파일 깃 충돌 해결하는 법 (0) | 2023.06.21 |
유니티 무료 2D맵 에디터 : 게임 맵을 쉽게 만드는 툴 소개 (0) | 2023.06.14 |
댓글