디자인 적용 중
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
#nullable enable
|
||||
#nullable enable
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -293,6 +293,7 @@ namespace UVC.UI.Menu
|
||||
|
||||
if (buttonText != null && !string.IsNullOrEmpty(itemData.DisplayName))
|
||||
{
|
||||
buttonText.alpha = itemData.IsEnabled ? 1 : 0.25f;
|
||||
if (_locManager != null)
|
||||
{
|
||||
buttonText.text = _locManager.GetString(itemData.DisplayName);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine;
|
||||
using UVC.Factory.Playback;
|
||||
using UVC.Locale;
|
||||
using UVC.UI.Commands;
|
||||
using UVC.UI.Toolbar.Model;
|
||||
@@ -37,83 +38,67 @@ namespace UVC.UI.Toolbar
|
||||
}
|
||||
|
||||
// --- 툴바 모델 구성 ---
|
||||
// 컴포넌트 목록
|
||||
mainToolbar.AddStandardButton("컴포넌트 목록",
|
||||
"Prefabs/UI/Toolbar/images/ic_menu_elements",
|
||||
new ActionCommand(() => Debug.Log("컴포넌트 목록 버튼 클릭됨")),
|
||||
"컴포넌트 목록 창을 엽니다.");
|
||||
|
||||
// 요청하신 기능으로 툴바 구성
|
||||
// 1. 카메라 조절 (RadioButtonGroup)
|
||||
// playback
|
||||
mainToolbar.AddStandardButton("Playback",
|
||||
"Prefabs/UI/Toolbar/images/ic_menu_playback",
|
||||
new PlaybackCommand(),
|
||||
"Playback을 실행 시킵니다.");
|
||||
|
||||
// 화면 캡처
|
||||
mainToolbar.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,
|
||||
"Prefabs/UI/Toolbar/images/ic_menu_camera_on",
|
||||
"Prefabs/UI/Toolbar/images/ic_menu_camera_off",
|
||||
(isSelected) => Debug.Log($"화면 녹화 상태: {(isSelected ? "녹화 중" : "중지")} (OnToggle 콜백)"),
|
||||
new ActionCommand<bool>((isRecording) => Debug.Log($"화면 녹화 Command 실행: {(isRecording ? "녹화 시작" : "녹화 중지")}")),
|
||||
"tooltip_record_screen");
|
||||
|
||||
// 화면 확대
|
||||
mainToolbar.AddStandardButton("화면 확대",
|
||||
"Prefabs/UI/Toolbar/images/ic_menu_zoom_in",
|
||||
new ActionCommand(() => Debug.Log("화면 확대 버튼 클릭됨")),
|
||||
"화면을 한 단계 확대 합니다.");
|
||||
|
||||
//화면 축소
|
||||
mainToolbar.AddStandardButton("화면 축소",
|
||||
"Prefabs/UI/Toolbar/images/ic_menu_zoom_out",
|
||||
new ActionCommand(() => Debug.Log("화면 축소 버튼 클릭됨")),
|
||||
"화면을 한 단계 축소 합니다.");
|
||||
|
||||
// RadioButtonGroup 샘플
|
||||
mainToolbar.AddRadioButton("CameraControlGroup", "Top View", true,
|
||||
"Prefabs/UI/Toolbar/images/ic_camera_top_on",
|
||||
"Prefabs/UI/Toolbar/images/ic_camera_top_off",
|
||||
"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,
|
||||
"Prefabs/UI/Toolbar/images/ic_camera_quarter_on",
|
||||
"Prefabs/UI/Toolbar/images/ic_camera_quarter_off",
|
||||
"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,
|
||||
"Prefabs/UI/Toolbar/images/ic_camera_top_on",
|
||||
"Prefabs/UI/Toolbar/images/ic_camera_top_off",
|
||||
"Prefabs/UI/Toolbar/images/ic_camera_top_off_white",
|
||||
(isSelected) => { if (isSelected) Debug.Log("프런트뷰 카메라 선택됨"); },
|
||||
new ActionCommand(() => Debug.Log("프런트뷰 카메라 Command 실행")),
|
||||
"Front View 시점으로 변경합니다.");
|
||||
|
||||
// 2. 구분선
|
||||
// 구분선
|
||||
mainToolbar.AddSeparator();
|
||||
|
||||
// 3. 객체 선택
|
||||
mainToolbar.AddStandardButton("선택",
|
||||
"Prefabs/UI/Toolbar/images/ic_select_white",
|
||||
new ActionCommand(() => Debug.Log("객체 선택 버튼 클릭됨")),
|
||||
"객체를 선택합니다.");
|
||||
|
||||
// 4. 객체 이동
|
||||
mainToolbar.AddStandardButton("이동",
|
||||
"Prefabs/UI/Toolbar/images/ic_move_white",
|
||||
new ActionCommand(() => Debug.Log("객체 이동 버튼 클릭됨")),
|
||||
"객체를 이동 시킵니다.");
|
||||
|
||||
// 5. 객체 회전
|
||||
mainToolbar.AddStandardButton("회전",
|
||||
"Prefabs/UI/Toolbar/images/ic_rotation_white",
|
||||
new ActionCommand(() => Debug.Log("객체 회전 버튼 클릭됨")),
|
||||
"객체의 각도를 조절합니다.");
|
||||
|
||||
// 6. 객체 크기조절
|
||||
mainToolbar.AddStandardButton("크기조절",
|
||||
"Prefabs/UI/Toolbar/images/ic_scale_white",
|
||||
new ActionCommand(() => Debug.Log("객체 크기조절 버튼 클릭됨")),
|
||||
"객체 크기를 조절합니다.");
|
||||
|
||||
// 7. 객체 복제
|
||||
mainToolbar.AddStandardButton("복제",
|
||||
"Prefabs/UI/Toolbar/images/ic_copy_white",
|
||||
new ActionCommand(() => Debug.Log("객체 복제 버튼 클릭됨")),
|
||||
"객체를 복제 합니다.");
|
||||
|
||||
// 8. 객체 삭제
|
||||
mainToolbar.AddStandardButton("삭제",
|
||||
"Prefabs/UI/Toolbar/images/ic_delete_white",
|
||||
new ActionCommand(() => Debug.Log("객체 삭제 버튼 클릭됨")),
|
||||
"객체를 삭제 합니다.");
|
||||
|
||||
mainToolbar.AddSeparator();
|
||||
|
||||
// 9. 화면 캡처
|
||||
mainToolbar.AddStandardButton("button_capture_screen",
|
||||
"Prefabs/UI/Toolbar/images/ic_capture_white",
|
||||
new ActionCommand(() => Debug.Log("화면 캡처 버튼 클릭됨")),
|
||||
"tooltip_capture_screen");
|
||||
|
||||
// 10. 화면 녹화 시작/중지 (ToggleButton)
|
||||
mainToolbar.AddToggleButton("button_record_screen", false,
|
||||
"Prefabs/UI/Toolbar/images/ic_record_on",
|
||||
"Prefabs/UI/Toolbar/images/ic_record_off",
|
||||
(isSelected) => Debug.Log($"화면 녹화 상태: {(isSelected ? "녹화 중" : "중지")} (OnToggle 콜백)"),
|
||||
new ActionCommand<bool>((isRecording) => Debug.Log($"화면 녹화 Command 실행: {(isRecording ? "녹화 시작" : "녹화 중지")}")),
|
||||
"tooltip_record_screen");
|
||||
|
||||
|
||||
// 기존 확장 버튼 (예시로 남겨두거나 필요에 따라 수정/제거)
|
||||
var expandableBtnModel = mainToolbar.AddExpandableButton("button_brush_size",
|
||||
|
||||
118
Assets/Scripts/UVC/Util/ImageColorChangeBehaviour.cs
Normal file
118
Assets/Scripts/UVC/Util/ImageColorChangeBehaviour.cs
Normal file
@@ -0,0 +1,118 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace UVC.UI.Util
|
||||
{
|
||||
/// <summary>
|
||||
/// 클릭, 호버, 포인터 종료와 같은 포인터 이벤트에 대한 응답으로 대상 <see cref="Image"/> 구성 요소의 색상 변경을 처리합니다.
|
||||
/// 이 동작은 연결된 <see cref="Button"/>의 상호 작용 가능 상태를 고려합니다.
|
||||
/// </summary>
|
||||
/// <remarks>이 동작은 일반적으로 사용자 상호 작용에 따라 색상을 변경하여 버튼과 같은 UI 요소에 시각적 피드백을 제공하는 데 사용됩니다.
|
||||
/// 색상 전환은 포인터 상태(예: 호버, 클릭)와 연결된 버튼의 상호 작용 가능 상태에 따라 달라집니다. <see cref="Button"/>이 상호 작용 가능하지 않으면
|
||||
/// 상호 작용별 색상 대신 <c>disabledColor</c>가 적용됩니다.</remarks>
|
||||
public class ImageColorChangeBehaviour : MonoBehaviour, IPointerDownHandler, IPointerUpHandler,
|
||||
IPointerEnterHandler, IPointerExitHandler
|
||||
{
|
||||
[SerializeField]
|
||||
private Color originalColor = Color.white; // 기본 컬러
|
||||
[SerializeField]
|
||||
private Color hoverColor = Color.gray; // 마우스 오버 시 컬러
|
||||
[SerializeField]
|
||||
private Color clickColor = Color.gray; // 클릭 시 컬러
|
||||
[SerializeField]
|
||||
private Color disabledColor = Color.gray; // 비활성화 시 컬러
|
||||
[SerializeField]
|
||||
private Image targetImage; // 컬러를 변경할 이미지 컴포넌트
|
||||
[SerializeField]
|
||||
private Button button; // 버튼 컴포넌트
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (targetImage == null)
|
||||
{
|
||||
targetImage = GetComponent<UnityEngine.UI.Image>();
|
||||
}
|
||||
if (targetImage != null)
|
||||
{
|
||||
targetImage.color = originalColor; // 초기 컬러 설정
|
||||
}
|
||||
if (button == null)
|
||||
{
|
||||
button = GetComponent<Button>();
|
||||
}
|
||||
if(button != null)
|
||||
{
|
||||
button.transition = Selectable.Transition.None; // 버튼의 전환 효과를 비활성화
|
||||
}
|
||||
}
|
||||
|
||||
public void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
if (button.interactable)
|
||||
{
|
||||
if (targetImage != null)
|
||||
{
|
||||
targetImage.color = clickColor; // 클릭 시 컬러 변경
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (targetImage != null)
|
||||
{
|
||||
targetImage.color = disabledColor; // 비활성화 시 컬러 변경
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnPointerEnter(PointerEventData eventData)
|
||||
{
|
||||
if (button.interactable)
|
||||
{
|
||||
if (targetImage != null)
|
||||
{
|
||||
targetImage.color = hoverColor; // 마우스 오버 시 컬러 변경
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnPointerExit(PointerEventData eventData)
|
||||
{
|
||||
if (button.interactable)
|
||||
{
|
||||
if (targetImage != null)
|
||||
{
|
||||
targetImage.color = originalColor; // 마우스가 벗어날 때 원래 컬러로 변경
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (targetImage != null)
|
||||
{
|
||||
targetImage.color = disabledColor; // 비활성화 상태일 때 컬러 변경
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnPointerUp(PointerEventData eventData)
|
||||
{
|
||||
if (button.interactable)
|
||||
{
|
||||
if (targetImage != null)
|
||||
{
|
||||
targetImage.color = originalColor; // 클릭 후 원래 컬러로 변경
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (targetImage != null)
|
||||
{
|
||||
targetImage.color = disabledColor; // 비활성화 상태일 때 컬러 변경
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4185643eda515744385d49b83fe88dce
|
||||
Reference in New Issue
Block a user