탐색기, 라이브러리, 화면 객체 배치
This commit is contained in:
@@ -14,6 +14,19 @@ public class ToolBarSample : MonoBehaviour
|
||||
[SerializeField]
|
||||
private Toolbox toolBox;
|
||||
|
||||
// 테스트용 버튼 참조
|
||||
private ToolbarToggleButton _toolbarToggleButton;
|
||||
private ToolbarRadioButton _toolbarTopViewRadio;
|
||||
private ToolbarRadioButton _toolbarQuarterViewRadio;
|
||||
private ToolbarRadioButton _toolbarFrontViewRadio;
|
||||
|
||||
private ToolbarToggleButton _toolboxToggleButton;
|
||||
private ToolbarRadioButton _toolboxTopViewRadio;
|
||||
private ToolbarRadioButton _toolboxQuarterViewRadio;
|
||||
private ToolbarRadioButton _toolboxFrontViewRadio;
|
||||
|
||||
private const string CAMERA_GROUP_NAME = "CameraControlGroup";
|
||||
|
||||
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
||||
void Start()
|
||||
{
|
||||
@@ -24,6 +37,207 @@ public class ToolBarSample : MonoBehaviour
|
||||
ToolbarModel toolBoxModel = generateToolBoxModel();
|
||||
toolBox.SetData(toolBoxModel);
|
||||
toolBox.Initialize();
|
||||
|
||||
// OnAction 이벤트 구독
|
||||
toolbar.OnAction += OnToolbarAction;
|
||||
toolBox.OnAction += OnToolboxAction;
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
// 이벤트 구독 해제
|
||||
if (toolbar != null) toolbar.OnAction -= OnToolbarAction;
|
||||
if (toolBox != null) toolBox.OnAction -= OnToolboxAction;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar의 OnAction 이벤트 핸들러
|
||||
/// </summary>
|
||||
private void OnToolbarAction(ToolbarActionEventArgs args)
|
||||
{
|
||||
Debug.Log($"[Toolbar OnAction] ActionType: {args.ActionType}, Text: {args.Text}, Value: {args.Value}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Toolbox의 OnAction 이벤트 핸들러
|
||||
/// </summary>
|
||||
private void OnToolboxAction(ToolbarActionEventArgs args)
|
||||
{
|
||||
Debug.Log($"[Toolbox OnAction] ActionType: {args.ActionType}, Text: {args.Text}, Value: {args.Value}");
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
// 테스트용 키 입력 처리
|
||||
HandleTestInputs();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 테스트용 키 입력을 처리합니다.
|
||||
/// </summary>
|
||||
private void HandleTestInputs()
|
||||
{
|
||||
// === Toolbar 테스트 ===
|
||||
// 1: TopView 선택 (이벤트 발생)
|
||||
if (Input.GetKeyDown(KeyCode.Alpha1))
|
||||
{
|
||||
Debug.Log("[Test] Toolbar: TopView 선택 (raiseEvent=true)");
|
||||
toolbar.SetRadioButtonSelection(CAMERA_GROUP_NAME, _toolbarTopViewRadio, true);
|
||||
}
|
||||
// 2: QuarterView 선택 (이벤트 발생)
|
||||
if (Input.GetKeyDown(KeyCode.Alpha2))
|
||||
{
|
||||
Debug.Log("[Test] Toolbar: QuarterView 선택 (raiseEvent=true)");
|
||||
toolbar.SetRadioButtonSelection(CAMERA_GROUP_NAME, _toolbarQuarterViewRadio, true);
|
||||
}
|
||||
// 3: FrontView 선택 (이벤트 없이)
|
||||
if (Input.GetKeyDown(KeyCode.Alpha3))
|
||||
{
|
||||
Debug.Log("[Test] Toolbar: FrontView 선택 (raiseEvent=false)");
|
||||
toolbar.SetRadioButtonSelection(CAMERA_GROUP_NAME, _toolbarFrontViewRadio, false);
|
||||
}
|
||||
// 4: 라디오 버튼 선택 해제 (이벤트 발생)
|
||||
if (Input.GetKeyDown(KeyCode.Alpha4))
|
||||
{
|
||||
Debug.Log("[Test] Toolbar: 라디오 버튼 선택 해제 (raiseEvent=true)");
|
||||
toolbar.ClearRadioButtonSelection(CAMERA_GROUP_NAME, true);
|
||||
}
|
||||
// 5: 라디오 버튼 선택 해제 (이벤트 없이)
|
||||
if (Input.GetKeyDown(KeyCode.Alpha5))
|
||||
{
|
||||
Debug.Log("[Test] Toolbar: 라디오 버튼 선택 해제 (raiseEvent=false)");
|
||||
toolbar.ClearRadioButtonSelection(CAMERA_GROUP_NAME, false);
|
||||
}
|
||||
|
||||
// T: 토글 버튼 ON (이벤트 발생)
|
||||
if (Input.GetKeyDown(KeyCode.T))
|
||||
{
|
||||
Debug.Log("[Test] Toolbar: 토글 버튼 ON (raiseEvent=true)");
|
||||
toolbar.SetToggleButtonState(_toolbarToggleButton, true, true);
|
||||
}
|
||||
// Y: 토글 버튼 OFF (이벤트 발생)
|
||||
if (Input.GetKeyDown(KeyCode.Y))
|
||||
{
|
||||
Debug.Log("[Test] Toolbar: 토글 버튼 OFF (raiseEvent=true)");
|
||||
toolbar.SetToggleButtonState(_toolbarToggleButton, false, true);
|
||||
}
|
||||
// U: 토글 버튼 ON (이벤트 없이)
|
||||
if (Input.GetKeyDown(KeyCode.U))
|
||||
{
|
||||
Debug.Log("[Test] Toolbar: 토글 버튼 ON (raiseEvent=false)");
|
||||
toolbar.SetToggleButtonState(_toolbarToggleButton, true, false);
|
||||
}
|
||||
// I: 토글 버튼 OFF (이벤트 없이)
|
||||
if (Input.GetKeyDown(KeyCode.I))
|
||||
{
|
||||
Debug.Log("[Test] Toolbar: 토글 버튼 OFF (raiseEvent=false)");
|
||||
toolbar.SetToggleButtonState(_toolbarToggleButton, false, false);
|
||||
}
|
||||
|
||||
// === Toolbox 테스트 ===
|
||||
// Q: TopView 선택 (이벤트 발생)
|
||||
if (Input.GetKeyDown(KeyCode.Q))
|
||||
{
|
||||
Debug.Log("[Test] Toolbox: TopView 선택 (raiseEvent=true)");
|
||||
toolBox.SetRadioButtonSelection(CAMERA_GROUP_NAME, _toolboxTopViewRadio, true);
|
||||
}
|
||||
// W: QuarterView 선택 (이벤트 없이)
|
||||
if (Input.GetKeyDown(KeyCode.W))
|
||||
{
|
||||
Debug.Log("[Test] Toolbox: QuarterView 선택 (raiseEvent=false)");
|
||||
toolBox.SetRadioButtonSelection(CAMERA_GROUP_NAME, _toolboxQuarterViewRadio, false);
|
||||
}
|
||||
// E: 라디오 버튼 선택 해제 (이벤트 발생)
|
||||
if (Input.GetKeyDown(KeyCode.E))
|
||||
{
|
||||
Debug.Log("[Test] Toolbox: 라디오 버튼 선택 해제 (raiseEvent=true)");
|
||||
toolBox.ClearRadioButtonSelection(CAMERA_GROUP_NAME, true);
|
||||
}
|
||||
|
||||
// R: 토글 버튼 토글 (이벤트 발생)
|
||||
if (Input.GetKeyDown(KeyCode.R))
|
||||
{
|
||||
bool newState = !_toolboxToggleButton.IsSelected;
|
||||
Debug.Log($"[Test] Toolbox: 토글 버튼 -> {newState} (raiseEvent=true)");
|
||||
toolBox.SetToggleButtonState(_toolboxToggleButton, newState, true);
|
||||
}
|
||||
// F: 토글 버튼 토글 (이벤트 없이)
|
||||
if (Input.GetKeyDown(KeyCode.F))
|
||||
{
|
||||
bool newState = !_toolboxToggleButton.IsSelected;
|
||||
Debug.Log($"[Test] Toolbox: 토글 버튼 -> {newState} (raiseEvent=false)");
|
||||
toolBox.SetToggleButtonState(_toolboxToggleButton, newState, false);
|
||||
}
|
||||
|
||||
// === Text 기반 API 테스트 ===
|
||||
// 6: Text로 TopView 선택 (이벤트 발생)
|
||||
if (Input.GetKeyDown(KeyCode.Alpha6))
|
||||
{
|
||||
Debug.Log("[Test] Toolbar: Text로 'Top View' 선택 (raiseEvent=true)");
|
||||
toolbar.SetRadioButtonSelection(CAMERA_GROUP_NAME, "Top View", true);
|
||||
}
|
||||
// 7: Text로 QuarterView 선택 (이벤트 없이)
|
||||
if (Input.GetKeyDown(KeyCode.Alpha7))
|
||||
{
|
||||
Debug.Log("[Test] Toolbar: Text로 'Quarter View' 선택 (raiseEvent=false)");
|
||||
toolbar.SetRadioButtonSelection(CAMERA_GROUP_NAME, "Quarter View", false);
|
||||
}
|
||||
// 8: Text로 라디오 버튼 선택 해제 (빈 문자열)
|
||||
if (Input.GetKeyDown(KeyCode.Alpha8))
|
||||
{
|
||||
Debug.Log("[Test] Toolbar: Text로 라디오 버튼 선택 해제 (raiseEvent=true)");
|
||||
toolbar.SetRadioButtonSelection(CAMERA_GROUP_NAME, "", true);
|
||||
}
|
||||
// 9: Text로 토글 버튼 ON
|
||||
if (Input.GetKeyDown(KeyCode.Alpha9))
|
||||
{
|
||||
Debug.Log("[Test] Toolbar: Text로 토글 버튼 ON (raiseEvent=true)");
|
||||
toolbar.SetToggleButtonState("button_record_screen", true, true);
|
||||
}
|
||||
// 0: Text로 토글 버튼 OFF
|
||||
if (Input.GetKeyDown(KeyCode.Alpha0))
|
||||
{
|
||||
Debug.Log("[Test] Toolbar: Text로 토글 버튼 OFF (raiseEvent=true)");
|
||||
toolbar.SetToggleButtonState("button_record_screen", false, true);
|
||||
}
|
||||
|
||||
// H: 도움말 출력
|
||||
if (Input.GetKeyDown(KeyCode.H))
|
||||
{
|
||||
PrintHelp();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 테스트 키 도움말을 출력합니다.
|
||||
/// </summary>
|
||||
private void PrintHelp()
|
||||
{
|
||||
Debug.Log("=== Toolbar/Toolbox 테스트 키 도움말 ===");
|
||||
Debug.Log("--- Toolbar 라디오 버튼 (객체 참조) ---");
|
||||
Debug.Log("1: TopView 선택 (이벤트 O)");
|
||||
Debug.Log("2: QuarterView 선택 (이벤트 O)");
|
||||
Debug.Log("3: FrontView 선택 (이벤트 X)");
|
||||
Debug.Log("4: 선택 해제 (이벤트 O)");
|
||||
Debug.Log("5: 선택 해제 (이벤트 X)");
|
||||
Debug.Log("--- Toolbar 라디오/토글 버튼 (Text 기반) ---");
|
||||
Debug.Log("6: Text로 TopView 선택 (이벤트 O)");
|
||||
Debug.Log("7: Text로 QuarterView 선택 (이벤트 X)");
|
||||
Debug.Log("8: Text로 선택 해제 (이벤트 O)");
|
||||
Debug.Log("9: Text로 토글 ON (이벤트 O)");
|
||||
Debug.Log("0: Text로 토글 OFF (이벤트 O)");
|
||||
Debug.Log("--- Toolbar 토글 버튼 (객체 참조) ---");
|
||||
Debug.Log("T: ON (이벤트 O)");
|
||||
Debug.Log("Y: OFF (이벤트 O)");
|
||||
Debug.Log("U: ON (이벤트 X)");
|
||||
Debug.Log("I: OFF (이벤트 X)");
|
||||
Debug.Log("--- Toolbox ---");
|
||||
Debug.Log("Q: TopView 선택 (이벤트 O)");
|
||||
Debug.Log("W: QuarterView 선택 (이벤트 X)");
|
||||
Debug.Log("E: 선택 해제 (이벤트 O)");
|
||||
Debug.Log("R: 토글 버튼 토글 (이벤트 O)");
|
||||
Debug.Log("F: 토글 버튼 토글 (이벤트 X)");
|
||||
Debug.Log("H: 이 도움말 출력");
|
||||
}
|
||||
|
||||
private ToolbarModel generateToolBarModel()
|
||||
@@ -31,15 +245,15 @@ public class ToolBarSample : MonoBehaviour
|
||||
var toolbarModel = new ToolbarModel();
|
||||
|
||||
// --- 툴바 모델 구성 ---
|
||||
|
||||
|
||||
// 화면 캡처
|
||||
toolbarModel.AddStandardButton("button_capture_screen",
|
||||
"Prefabs/UI/Toolbar/images/ic_menu_capture",
|
||||
new ActionCommand(() => Debug.Log("화면 캡처 버튼 클릭됨")),
|
||||
"tooltip_capture_screen");
|
||||
|
||||
// 화면 녹화 시작/중지 (ToggleButton)
|
||||
toolbarModel.AddToggleButton("button_record_screen", false,
|
||||
// 화면 녹화 시작/중지 (ToggleButton) - 참조 저장
|
||||
_toolbarToggleButton = 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 콜백)"),
|
||||
@@ -61,20 +275,20 @@ public class ToolBarSample : MonoBehaviour
|
||||
// 구분선
|
||||
toolbarModel.AddSeparator();
|
||||
|
||||
// RadioButtonGroup 샘플
|
||||
toolbarModel.AddRadioButton("CameraControlGroup", "Top View", true,
|
||||
// RadioButtonGroup 샘플 - 참조 저장
|
||||
_toolbarTopViewRadio = 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 시점으로 변경합니다.");
|
||||
toolbarModel.AddRadioButton("CameraControlGroup", "Quarter View", false,
|
||||
_toolbarQuarterViewRadio = 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 시점으로 변경합니다.");
|
||||
toolbarModel.AddRadioButton("CameraControlGroup", "Front View", false,
|
||||
_toolbarFrontViewRadio = 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("프런트뷰 카메라 선택됨"); },
|
||||
@@ -132,8 +346,8 @@ public class ToolBarSample : MonoBehaviour
|
||||
new ActionCommand(() => Debug.Log("화면 캡처 버튼 클릭됨")),
|
||||
"tooltip_capture_screen");
|
||||
|
||||
// 화면 녹화 시작/중지 (ToggleButton)
|
||||
toolbarModel.AddToggleButton("button_record_screen", false,
|
||||
// 화면 녹화 시작/중지 (ToggleButton) - 참조 저장
|
||||
_toolboxToggleButton = 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 콜백)"),
|
||||
@@ -155,20 +369,20 @@ public class ToolBarSample : MonoBehaviour
|
||||
// 구분선
|
||||
toolbarModel.AddSeparator();
|
||||
|
||||
// RadioButtonGroup 샘플
|
||||
toolbarModel.AddRadioButton("CameraControlGroup", "Top View", true,
|
||||
// RadioButtonGroup 샘플 - 참조 저장
|
||||
_toolboxTopViewRadio = 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 시점으로 변경합니다.");
|
||||
toolbarModel.AddRadioButton("CameraControlGroup", "Quarter View", false,
|
||||
_toolboxQuarterViewRadio = 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 시점으로 변경합니다.");
|
||||
toolbarModel.AddRadioButton("CameraControlGroup", "Front View", false,
|
||||
_toolboxFrontViewRadio = 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("프런트뷰 카메라 선택됨"); },
|
||||
|
||||
Reference in New Issue
Block a user