[Unity] NGUI

spixychz·2026년 1월 6일

Unity

목록 보기
11/15

실무에서 NGUI로 UI 작업을 담당했다.
NGUI로 작업을 하면서 느낀 점이나 기억할 것들을 나열했다.
100% 맞는 내용은 아닐 수도 있음 주의.

NGUI Atlas

  • Atlas Maker의 설정은 깃으로 공유가 안된다
  • Atlas Update치고 Save Project까지 해야한다

isEnabled vs enabled

  • isEnabled: 버튼이나 토글 같은 것들의 특성 활성화
  • enabled: 컴포넌트 자체 활성화

Label 설정

  • Max Lines = 1 : Use Ellipsis 옵션 적용 가능
  • Kepp crisp = Never : 창모드일 때 글자 크기 변하는 현상 방지

Toggle 그룹

  • group을 0으로 설정하면 개별적으로 작동한다. 마치 라디오버튼
  • group이 같은 것들 끼리는 활성화 상태는 1개 또는 0개 존재할 수 있다. 한개가 활성화되면 원래 활성화되어 있던 토글은 꺼진다. 이때 둘 다 onChange 콜백 실행.
  • 그럼 같은 그룹에서 0개인 상황을 만들고 싶다면. Button과 Toggle를 다른 게임 오브젝트에 배치하고 토글의 밸류를 false해주면 된다.

Button과 Toggle의 관계

  • 버튼의 onClick과 토글의 onChange는 게임 오브젝트 내 컴포넌트 순서에 따라 더 상위에 있는 것이 먼저 발동된다.
  • ex) 토글 ㄴ 버튼 : toggle.value 변동. 토글의 onChange 발동. -> 버튼의 onClick 발동. 변동된 toggle.value.
  • ex) 버튼 ㄴ 토글 : 버튼의 onClick 발동. toggle.value 변동 전 -> toggle.value 변동. 토글의 onChange 발동.

Toggle과 Slider의 Set() 메소드

  • toggle.Set(true);toggle.value = true; 는 같은 기능을 한다. 토글의 값을 true로 바꿔주고 onChange 콜백이 발동된다.
  • toggle.Set(true, false); 는 토글의 값을 true로 바꿔주지만 onChange 콜백이 발동되지는 않는다. UI 표현만 바꿔주고 싶을 때 사용했다.
  • 게임 오브젝트가 꺼져있을 때는 콜백이 실행되지 않는다.

Sprite나 Texture의 알파값은 자식들에게도 영향을 미친다.

  • 부모의 알파값의 영향을 받기 때문에, 부모 오브젝트를 비워두고 자식으로 스프라이트들을 배치했다.

NGUI의 Tween 발동

  • PlayForward(); : From -> To
  • PlayReverse(); : To -> From

ScrollView의 드래그

  • 자식 게임오브젝트의 BoxCollider의 영향을 받는다. BoxCollider마다 DragScrollView 컴포넌트를 부착해야 매끄럽게 작동된다.
    • 부착되어 있지 않다면 해당 콜라이더 영역에서 스크롤이 불가능하다.
    • 컴포넌트의 인스펙터 변수는 따로 할당하지 않아도 게임 오브젝트가 활성화되면서 할당되는 것 같다.

NGUI의 Localization

  • 손쉽게 다국어 기능이 구현 가능하다.
  • Label에 Localize 컴포넌트를 부착하고 Key를 입력
  • Localization.language = key; : 언어 변경
  • Localization.Get(key); : Value 가져오기
  • Key-Value는 CSV파일로 관리
    • Key와 Value는 콤마로 분리
    • Value는 문자, 숫자 이외에 기호가 들어가면 ""로 감싸는 것이 좋다.
    • \n 사용 가능
    • {0} 넣고 string.Format(); 가능
    • [3B3B4D][-] 컬러 넣기 가능
  • Localization.onLocalize : 언어가 바뀔 때의 콜백
profile
UNITY로 게임 개발하는 사람

0개의 댓글