49 lines
2.7 KiB
Plaintext
49 lines
2.7 KiB
Plaintext
<!--
|
|
NWModelView.uxml - NW 3D 모델 뷰어 레이아웃
|
|
|
|
[개요]
|
|
glTF/glb 3D 모델을 렌더링하는 뷰어의 UI 레이아웃입니다.
|
|
ISOPModelView.uxml과 동일한 구조를 가지며, NWModal에서 사용됩니다.
|
|
RenderTexture로 오프스크린 렌더링된 3D 모델을 배경으로 표시합니다.
|
|
|
|
[UI 구조]
|
|
Root
|
|
├── render-container - 3D 렌더링이 표시되는 영역
|
|
│ (RenderTexture가 이 요소의 배경으로 설정됨)
|
|
└── expand-btn - 모델 뷰 확장 버튼 (전체화면)
|
|
|
|
[ISOPModelView와의 차이점]
|
|
- expand-btn 위치: ISOP=오른쪽 상단, NW=왼쪽 하단
|
|
- 사용 모달: ISOP=ISOPModal, NW=NWModal (수직 레이아웃)
|
|
|
|
[렌더링 방식]
|
|
1. NWModelView.cs에서 전용 카메라(NWModelViewCamera) 생성
|
|
2. 카메라가 Layer 6의 3D 모델을 RenderTexture로 렌더링
|
|
3. RenderTexture를 render-container의 배경으로 설정
|
|
4. 매 프레임 MarkDirtyRepaint()로 UI 갱신
|
|
|
|
[마우스 조작]
|
|
- 가운데 버튼 드래그: 카메라 이동 (Pan)
|
|
- 오른쪽 버튼 드래그: 모델 회전 (Orbit)
|
|
- 마우스 휠: 확대/축소 (Zoom)
|
|
|
|
[연관 파일]
|
|
- NWModalView.uss : 스타일시트
|
|
- NWModelView.cs : C# 컨트롤러 (렌더링, 마우스 조작)
|
|
|
|
[사용되는 리소스]
|
|
- SHI/Images/btn_expand_36 : 확장 버튼 이미지
|
|
-->
|
|
<ui:UXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
|
|
<Style src="project://database/Assets/Resources/SHI/Modal/NW/NWModalView.uss?fileID=7433441132597879392&guid=1560514d54fae614c95172346d95c812&type=3#NWModalView" />
|
|
|
|
<!-- 3D 렌더링 컨테이너: RenderTexture가 배경으로 표시됨
|
|
- flex-grow: 1로 부모 영역 전체 채움
|
|
- overflow: hidden으로 내용 잘림 방지 -->
|
|
<ui:VisualElement name="render-container" style="flex-grow: 1; flex-shrink: 1; flex-basis: 0; min-width: 0; min-height: 0; overflow: hidden;" />
|
|
|
|
<!-- 확장 버튼: 모델 뷰를 전체 화면으로 확장
|
|
- 왼쪽 하단에 위치 (ISOPModelView는 오른쪽 상단) -->
|
|
<ui:Button name="expand-btn" style="position: absolute; width: 36px; height: 36px; margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0; border-top-width: 0; border-right-width: 0; border-bottom-width: 0; border-left-width: 0; background-color: rgba(255, 255, 255, 0); background-image: resource('SHI/Images/btn_expand_36'); bottom: 20px; left: 10px;" />
|
|
</ui:UXML>
|