Search
Duplicate

Unity/ NGUI

UI Camera

UICamera가 Input을 처리하는 방식

직접 구현하면 번거로운 것을 대신해 줘서 대단히 편리한데 이를 처리하는 방식은 아래와 같다.
모든 Input 이벤트는 NGUI의 UICamera가 처리한다.
Input이 발생하면 UICamera는 그 Input의 성격을 파악해서 이게 어떤 이벤트인지 –클릭, 더블클릭, 드래그, 드롭 등등– 파악한다.
이벤트 타입 –3D World/ 3D UI/ 2D Word/ 2D UI– 과 충돌 타입 –Rigidbody/ Collider– 을 기준으로 Ray를 쏴서 타입에 맞는 GameObject를 가져온다.
해당 GameObject에 발생한 이벤트 –OnClick, OnPress, OnDrag 등등– 를 SendMessage로 보낸다.

UICamera가 처리해주는 Input 목록

OnHover
OnPress
OnClick
OnDoubleClick
OnSelect
OnDrag
OnDrop
OnInput
OnTooltip
OnScroll
OnKey

Tip

UICamera는 UI 뿐만 아니라 모든 Input 이벤트를 처리할 수 있다. 기본적으로 UICamera는 UIRoot 아래의 Camera에 달려있지만, Main Camera에 추가로 UICamera를 달면, 월드 상의 Input 이벤트 처리도 가능하다.

UI Wrap Content

Wrap Content가 무한 스크롤을 구성하는 방식

Wrap Content 하위 요소들을 List에 담는다.
OnMove가 –스크롤– 발생하면 WrapContent를 실행한다.

주의 사항

무한 스크롤에 속하는 구성 요소들은 반드시 그 크기가 같아야 한다.
Wrap Content 하위의 transform index와 transform에 들어가는 데이터의 real index를 구분해야 한다.