====== 윈도우를 구성하는 방법 ====== ===== Example ===== file=http://kieuns.cafe24.com/wikimedia/language/unity/ngui/ngui-scrollview.flv ===== 간단한 프레임 구성 ===== DebugWindow : GameObject DW_Bkgnd : UISlicedSprite 로 배경 이미지를 윈도우 크기만큼 늘린다. DW_Title : UISlicedSprite 로 이미지를 적당히 늘려서, 타이틀바로 사용한다. ==== 테스트 윈도우 계층도 ==== {{:language:unity:ngui:ngui-scrollview-hierarchy-testwindow.jpg|}} ===== 윈도우 이동 기능 ===== 타이틀바를 클릭해서 윈도우를 이동하게끔 하고 싶으면. * DW_Title 에 * Box Collider를 추가 * UIDragObject 스크립트를 추가한다. * UIDragObject 에 드래그 이동을 할 오브젝트를 Target 항목에 설정한다. * 인스펙터에서 DebugWindow Object를 **UIDragObject**의 **Target** 항목에 추가한다. 실행 결과는, DW_Title을 클릭하면 윈도우를 이동 시킬 수 있다. ====== 스크롤뷰 ScrollView 구성 ====== Panel을 활용해서 스크롤 뷰를 구성한다. 사용할 컴포넌트 - 윈도우를 만들고 윈도우 내부에 스크롤 뷰를 구성한다. TestWindow : 테스트 윈도우 WindowBkgnd : 윈도우 배경 이미지 - 스크롤뷰의 스크롤용 클릭을 감지하는 역할도 함. WindowScrollBar : 현재 스크롤 상태를 보여 주는 스크롤 이미지 Panel2D-Inside : 스크롤뷰로 사용할 패널. 스크롤 뷰 컨텐츠의 내용을 윈도우 크기에 맞춰서 보여주는 역할을 담당. ScrollZone (...) : 스크롤 뷰에 추가되는 자식 오브젝트들 ===== 뷰 구성 ===== Panel을 추가하고, (Panel2D-Inside) * Clipping을 Hard 또는 Soft로 설정 * Size를 윈도우 크기만큼 설정 \\ {{:language:unity:ngui:ngui-scrollview-inspector-panel2dinsideonly.jpg|}} * 결과는 Size만큼만 화면에 표시된다. Panel2D 의 자식으로 스크롤뷰에 추가될 UI 위젯을 추가 * 컨트롤이 추가되면 주황색선으로 전체 스크롤뷰의 크기가 확장 된다. \\ {{:language:unity:ngui:ngui-scrollview-scene-panel2dscrollzone.jpg|}} \\ 주황색 : 스크롤 뷰 전체 \\ 보라색 : Panel 영역 (이 영역만큼만 보인다.) ===== 스크롤 입력 반응 추가 ===== Panel2D-Inside 오브젝트에, **UIDraggablePanel** 스크립트를 추가 * Scale 에 이동할 방향에 대해서만 1 설정. 움직이면 안되는 방향에는 0 설정 \\ {{:language:unity:ngui:ngui-scrollview-inspector-panel2d-uidraggablepanel.jpg|}} Panel2D-Inside가 스크롤 되기 위해서는 다른 오브젝트에서 입력을 감지해야 하는데, * 패널이 표시되는 윈도우 배경에 해당되는 부분에 * Box Collider를 추가하고 **Is Trigger** 체크 * **UIDragPanelContents** 스크립트 추가 * **Draggable Panel** 항목에 Panel2D-Inside 오브젝트를 추가 (패널에는 **UIDraggablePanel** 스크립트가 추가되어 있어야 한다.) * 인스펙터 \\ {{:language:unity:ngui:ngui-scrollview-inspector-windowbkgnd.jpg|}}