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를 구분해야 한다.