라이브러리 정리
This commit is contained in:
@@ -6,60 +6,96 @@ using UVC.UI.Commands;
|
||||
using UVC.UI.Toolbar.Model;
|
||||
using UVC.UI.Toolbar.View;
|
||||
using UVC.UI.Window;
|
||||
using UVC.Factory.Component;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UVC.UI.Toolbar
|
||||
{
|
||||
public class Toolbar : MonoBehaviour
|
||||
{
|
||||
protected ToolbarModel mainToolbar;
|
||||
protected ToolbarView mainToolbarView;
|
||||
protected ToolbarModel model;
|
||||
protected ToolbarView view;
|
||||
|
||||
|
||||
protected virtual void Awake()
|
||||
protected void Awake()
|
||||
{
|
||||
// 1. 이 GameObject에 연결된 ToolbarView 컴포넌트를 찾습니다.
|
||||
mainToolbarView = GetComponent<ToolbarView>();
|
||||
view = GetComponent<ToolbarView>();
|
||||
|
||||
// 2. 만약 현재 GameObject에 없다면, 자식 GameObject들 중에서 ToolbarView 컴포넌트를 찾습니다.
|
||||
if (mainToolbarView == null)
|
||||
if (view == null)
|
||||
{
|
||||
mainToolbarView = GetComponentInChildren<ToolbarView>();
|
||||
view = GetComponentInChildren<ToolbarView>();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected virtual void Start()
|
||||
/// <summary>
|
||||
/// 툴바 모델을 설정합니다.
|
||||
/// </summary>
|
||||
/// <param name="toolbarModel"></param>
|
||||
public void SetData(ToolbarModel toolbarModel)
|
||||
{
|
||||
mainToolbar = new ToolbarModel();
|
||||
|
||||
// ToolbarView에 프리팹 설정은 ToolbarView 내부에서 처리하거나 Inspector에서 직접 할당합니다.
|
||||
if (mainToolbarView == null)
|
||||
if (view == null)
|
||||
{
|
||||
Debug.LogError("ToolbarView가 할당되지 않았습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
model = toolbarModel;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 툴바를 초기화합니다.
|
||||
/// </summary>
|
||||
public void Initialize()
|
||||
{
|
||||
if (view == null)
|
||||
{
|
||||
Debug.LogError("ToolbarView가 할당되지 않았습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (model == null)
|
||||
{
|
||||
Debug.LogError("ToolbarModel이 할당되지 않았습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
// ToolbarView 초기화 및 렌더링
|
||||
view.Initialize(model);
|
||||
}
|
||||
|
||||
|
||||
private ToolbarModel generateModel()
|
||||
{
|
||||
var toolbarModel = new ToolbarModel();
|
||||
|
||||
// --- 툴바 모델 구성 ---
|
||||
// 컴포넌트 목록
|
||||
mainToolbar.AddStandardButton("컴포넌트 목록",
|
||||
toolbarModel.AddStandardButton("컴포넌트 목록",
|
||||
"Prefabs/UI/Toolbar/images/ic_menu_elements",
|
||||
new ActionCommand(() => { if (!ComponentListWindow.Instance.gameObject.activeSelf) ComponentListWindow.Instance.Show(); ComponentListWindow.Instance.SetupData(); }),
|
||||
new ActionCommand(() => {
|
||||
// if (!ComponentListWindow.Instance.gameObject.activeSelf) ComponentListWindow.Instance.Show();
|
||||
// var infos = ComponentList.GenerateData();
|
||||
// ComponentListWindow.Instance.SetupData(infos);
|
||||
}),
|
||||
"컴포넌트 목록 창을 엽니다.");
|
||||
|
||||
// playback
|
||||
mainToolbar.AddStandardButton("Playback",
|
||||
toolbarModel.AddStandardButton("Playback",
|
||||
"Prefabs/UI/Toolbar/images/ic_menu_playback",
|
||||
new PlaybackCommand(),
|
||||
"Playback을 실행 시킵니다.");
|
||||
|
||||
// 화면 캡처
|
||||
mainToolbar.AddStandardButton("button_capture_screen",
|
||||
toolbarModel.AddStandardButton("button_capture_screen",
|
||||
"Prefabs/UI/Toolbar/images/ic_menu_capture",
|
||||
new ActionCommand(() => Debug.Log("화면 캡처 버튼 클릭됨")),
|
||||
"tooltip_capture_screen");
|
||||
|
||||
// 화면 녹화 시작/중지 (ToggleButton)
|
||||
mainToolbar.AddToggleButton("button_record_screen", false,
|
||||
toolbarModel.AddToggleButton("button_record_screen", false,
|
||||
"Prefabs/UI/Toolbar/images/ic_menu_camera_on",
|
||||
"Prefabs/UI/Toolbar/images/ic_menu_camera_off",
|
||||
(isSelected) => Debug.Log($"화면 녹화 상태: {(isSelected ? "녹화 중" : "중지")} (OnToggle 콜백)"),
|
||||
@@ -67,34 +103,34 @@ namespace UVC.UI.Toolbar
|
||||
"tooltip_record_screen");
|
||||
|
||||
// 화면 확대
|
||||
mainToolbar.AddStandardButton("화면 확대",
|
||||
toolbarModel.AddStandardButton("화면 확대",
|
||||
"Prefabs/UI/Toolbar/images/ic_menu_zoom_in",
|
||||
new ActionCommand(() => Debug.Log("화면 확대 버튼 클릭됨")),
|
||||
"화면을 한 단계 확대 합니다.");
|
||||
|
||||
//화면 축소
|
||||
mainToolbar.AddStandardButton("화면 축소",
|
||||
toolbarModel.AddStandardButton("화면 축소",
|
||||
"Prefabs/UI/Toolbar/images/ic_menu_zoom_out",
|
||||
new ActionCommand(() => Debug.Log("화면 축소 버튼 클릭됨")),
|
||||
"화면을 한 단계 축소 합니다.");
|
||||
|
||||
// 구분선
|
||||
mainToolbar.AddSeparator();
|
||||
toolbarModel.AddSeparator();
|
||||
|
||||
// RadioButtonGroup 샘플
|
||||
mainToolbar.AddRadioButton("CameraControlGroup", "Top View", true,
|
||||
toolbarModel.AddRadioButton("CameraControlGroup", "Top View", true,
|
||||
"Prefabs/UI/Toolbar/images/ic_camera_top_on",
|
||||
"Prefabs/UI/Toolbar/images/ic_camera_top_off_white",
|
||||
(isSelected) => { if (isSelected) Debug.Log("탑뷰 카메라 선택됨"); },
|
||||
new ActionCommand(() => Debug.Log("탑뷰 카메라 Command 실행")),
|
||||
"Top View 시점으로 변경합니다.");
|
||||
mainToolbar.AddRadioButton("CameraControlGroup", "Quarter View", false,
|
||||
toolbarModel.AddRadioButton("CameraControlGroup", "Quarter View", false,
|
||||
"Prefabs/UI/Toolbar/images/ic_camera_quarter_on",
|
||||
"Prefabs/UI/Toolbar/images/ic_camera_quarter_off_white",
|
||||
(isSelected) => { if (isSelected) Debug.Log("쿼터뷰 카메라 선택됨"); },
|
||||
new ActionCommand(() => Debug.Log("쿼터뷰 카메라 Command 실행")),
|
||||
"Quarter View 시점으로 변경합니다.");
|
||||
mainToolbar.AddRadioButton("CameraControlGroup", "Front View", false,
|
||||
toolbarModel.AddRadioButton("CameraControlGroup", "Front View", false,
|
||||
"Prefabs/UI/Toolbar/images/ic_camera_top_on",
|
||||
"Prefabs/UI/Toolbar/images/ic_camera_top_off_white",
|
||||
(isSelected) => { if (isSelected) Debug.Log("프런트뷰 카메라 선택됨"); },
|
||||
@@ -102,10 +138,10 @@ namespace UVC.UI.Toolbar
|
||||
"Front View 시점으로 변경합니다.");
|
||||
|
||||
// 구분선
|
||||
mainToolbar.AddSeparator();
|
||||
toolbarModel.AddSeparator();
|
||||
|
||||
// 기존 확장 버튼 (예시로 남겨두거나 필요에 따라 수정/제거)
|
||||
var expandableBtnModel = mainToolbar.AddExpandableButton("button_brush_size",
|
||||
var expandableBtnModel = toolbarModel.AddExpandableButton("button_brush_size",
|
||||
"Prefabs/UI/Toolbar/images/ic_brush_default_white",
|
||||
new ActionCommand(() => Debug.Log("브러시 크기 주 버튼 클릭됨 (Command)")),
|
||||
"붓 사이즈 선택 합니다.");
|
||||
@@ -136,15 +172,14 @@ namespace UVC.UI.Toolbar
|
||||
};
|
||||
// --- 툴바 모델 구성 끝 ---
|
||||
|
||||
|
||||
// ToolbarView 초기화 및 렌더링
|
||||
mainToolbarView.Initialize(mainToolbar);
|
||||
|
||||
|
||||
// 예시: 모델 상태를 코드로 변경하고 UI가 업데이트되는지 테스트
|
||||
// StartCoroutine(TestModelChange(saveBtnModel, muteToggleModel));
|
||||
return toolbarModel;
|
||||
}
|
||||
|
||||
protected void OnDestroy()
|
||||
{
|
||||
model = null;
|
||||
view = null;
|
||||
}
|
||||
|
||||
|
||||
// System.Collections.IEnumerator TestModelChange(ToolbarStandardButton standard, ToolbarToggleButton toggle)
|
||||
|
||||
Reference in New Issue
Block a user