draggableList/Tab 개발 중
This commit is contained in:
@@ -8,33 +8,75 @@ using UVC.UI.Modal;
|
||||
|
||||
namespace UVC.Factory.Playback
|
||||
{
|
||||
/// <summary>
|
||||
/// 재생(Playback) 명령을 실행하는 클래스입니다.
|
||||
///
|
||||
/// <para>
|
||||
/// 이 명령은 팩토리 카메라를 비활성화하고, 재생 목록 모달을 띄운 뒤,
|
||||
/// 사용자가 재생 항목을 선택하면 재생을 시작합니다.
|
||||
/// 사용자가 취소하면 재생을 종료합니다.
|
||||
/// </para>
|
||||
///
|
||||
/// <example>
|
||||
/// <code>
|
||||
/// // ICommand 인터페이스를 구현하므로 다음과 같이 사용할 수 있습니다.
|
||||
/// ICommand playbackCommand = new PlaybackCommand();
|
||||
/// playbackCommand.Execute();
|
||||
/// </code>
|
||||
/// </example>
|
||||
/// </summary>
|
||||
public class PlaybackCommand : ICommand
|
||||
{
|
||||
/// <summary>
|
||||
/// 재생 명령을 실행합니다.
|
||||
///
|
||||
/// <para>
|
||||
/// 1. 카메라를 비활성화합니다.<br/>
|
||||
/// 2. 재생 목록 모달을 띄웁니다.<br/>
|
||||
/// 3. 사용자가 항목을 선택하면 재생을 시작합니다.<br/>
|
||||
/// 4. 사용자가 취소하면 재생을 종료합니다.<br/>
|
||||
/// </para>
|
||||
///
|
||||
/// <example>
|
||||
/// <code>
|
||||
/// // 명령 실행 예시
|
||||
/// var command = new PlaybackCommand();
|
||||
/// command.Execute();
|
||||
/// </code>
|
||||
/// </example>
|
||||
/// </summary>
|
||||
/// <param name="parameter">사용하지 않음</param>
|
||||
public async void Execute(object? parameter = null)
|
||||
{
|
||||
// 1. 카메라 비활성화
|
||||
FactoryCameraController.Instance.Enable = false;
|
||||
// 2. 재생 목록 모달 생성 및 표시
|
||||
var modalContent = new ModalContent(UIPlaybackListModal.PrefabPath)
|
||||
{
|
||||
Title = "Playback List",
|
||||
ConfirmButtonText = "Play",
|
||||
ShowCancelButton = false
|
||||
};
|
||||
|
||||
// 3. 사용자가 항목을 선택할 때까지 대기
|
||||
UIPlaybackListItemData? result = await UVC.UI.Modal.Modal.Open<UIPlaybackListItemData>(modalContent);
|
||||
|
||||
Debug.Log($"PlaybackCommand result==null:{result==null}");
|
||||
if (result != null)
|
||||
{
|
||||
// 4. 항목 선택 시: 로딩 표시, 재생 시작
|
||||
UILoading.Show();
|
||||
UIPlaybackListItemData data = result;
|
||||
Debug.Log($"PlaybackCommand data:{data}");
|
||||
DataRepository.Instance.MqttReceiver.Stop();
|
||||
|
||||
await PlaybackService.Instance.StartAsync(data);
|
||||
|
||||
FactoryCameraController.Instance.Enable = true;
|
||||
UILoading.Hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
// 5. 취소 시: 재생 종료
|
||||
UILoading.Show();
|
||||
PlaybackService.Instance.Exit();
|
||||
FactoryCameraController.Instance.Enable = true;
|
||||
|
||||
Reference in New Issue
Block a user