Unity 엔진 공부/project2

project2 개발일지 - 5 [Setting UI 기능 연결]

EJH 2025. 7. 28. 16:56
반응형

Setting UI  기능 연결 목표

세팅값을 파일로 저장할수 있게한다.

인터렉션된 수치를 표시한다.

 

1. 폰트 문제 해결

이전 폰트를 사용했을 때 몇몇 글자가 깨지는 현상을 발견했다.

이에 따라 폰트 에셋을 변경하였다.

또한 기본적으로 제공되는 폰트 에셋이 디폴트값으로 들어가기 때문에 이를 변경한다.

프로젝트 폴더에 tmp settings라고 검색하면 에셋 하나가 나온다.

이곳에서 인스펙터의 default font asset을 사용하려는 에셋으로 변경한다.

 

이제 기존 문제가 있던 에셋을 사용하던 Text들의 폰트 에셋을 변경해준다.

나같은 경우 모든 text를 사용하는 객체는 Text 로 이름을 맞추었기 때문에 일괄적으로 변경이 편했다.

 

2.Json과 폰트 연동 (반복 작업 줄이기)

일단은 이전처럼 연결을 해준다. 일단은 하나하나 설정을 해줬는데 개발일지를 쓰다보니 양이 너무 많다.

앞으로를 위해 자동화가 필요해보인다.

 

우선 먼저 든 생각은

1.enum에서 리플렉션을 통해 이름을 순회한다.

2.딕셔너리에서 그 키 값을 갖고 있다면 text를 변경해준다

잘 변경되는 것을 확인했다.

테스트는 완료했으니 UI_Base 에 새롭게 멤버 함수를 추가해준다.
템플릿을 이용해 어떤 enum을 넘겨도 일치하는 텍스트가 있다면 변환해준다.

이제 함수 하나만 호출해도 모든 텍스트를 불러올수 있다.

3.세팅값 저장, 불러오기

https://docs.unity3d.com/kr/530/ScriptReference/PlayerPrefs.html

 

UnityEngine.PlayerPrefs - Unity 스크립팅 API

Stores and accesses player preferences between game sessions.

docs.unity3d.com

유니티 공식 문서를 통해 PlayerPrefs를 확인했다.

PlayerPrefs로 로컬에 값을 저장하고 불러오는것이 가능해보인다.

 

Setting Manager를 만들고 필요한 load, save 함수를 만들어준다.

 

4. 세팅값을 UI_Setting에 연동

세팅 매니저의 값으로 연동해준다.

valueText는 슬라이더값을 연동해주었다.

 

마무리

생각보다 시간이 많이 소요되어서 전부 끝내진 못했다.

다음에는 key값을 버튼으로 변경해 값을 수정할 수 있게 만들고,

각 오디오와 화면 설정등을 값에 맞게 변하도록 할 예정이다.

반응형