가능한 유니티 에디터에서 변수들을 설정하지 않고, 스크립트에서 수정
=>
소스 코드 충돌 시 비교적 병합하기 쉽지만, 게임 리소스 충돌은 병합이 어려움
캔버스를 만든 후
Canvas Scaler의 Scale Mode를 Scale with screen size로 변경
Reference resolution을 게임의 주 해상도로 변경
핸드폰 게임일 경우 Match를 height로 변경
스크린 사이즈에 따라 비율이 자동으로 조절되긴 하지만 완벽하진 않기 때문에
해상도를 바꿔가며 테스트 해야함
캔버스에 원하는 UI들을 추가 후 캔버스를 프리팹으로 생성
해당 프리팹을 담당할 전용 스크립트를 생성하여 붙인다.
스크립트에서는 Initialize 함수와 RefreshUI 함수를 정의하여
Start 시 Initialize 함수를 실행하고 UI의 내용이 바뀔 때마다
RefreshUI 함수를 실행하여 바뀐 정보를 표시할 수 있도록 구현
RefreshUI 함수는 UI의 갱신이 필요한 모든 UI 모든 오브젝트를 다시 설정
=>
바뀌는 정보마다 하나씩 설정하는 함수를 만들 시 추후 관리가 어려울 수 있음
=>
UI가 너무 복잡해질 경우 분할화
UI의 서브아이템들의 경우 고정적인 경우 모두 UI에 구현해둘 수 있지만,
동적으로 생성해야 하는 경우 구조를 잡기 위해 오브젝트들을 배치만 해두고
생성 시에 서브 아이템들을 관리할 오브젝트를 가져와 child를 날려버리고,
정보에 맞게 새로 생성하는 방식으로 구현
서브아이템들처럼 반복하여 나오는 부분들은 프리팹으로 관리
(스크립트와 마찬가지로 중복 구현 최소화)
UI 스크립트에 인게임 데이터를 넣어놓지 않고
필요 시 다른 스크립트를 만들어 거기서 가져올 수 있도록 구현