using UnityEngine;

namespace UVC.UI.Commands.Mono
{
    /// <summary>
    /// Unity Inspector에서 버튼에 직접 할당할 수 있는 MonoBehaviour 기반의 명령 클래스입니다.
    /// </summary>
    public class MonoBehaviourCommand : MonoBehaviour, ICommand
    {
        // MonoCommand는 MonoBehaviour를 상속받아 Unity의 생명주기를 활용할 수 있습니다.
        // ICommand 인터페이스를 구현하여 명령 패턴을 따릅니다.
        public virtual void Execute(object parameter = null)
        {
            // 기본 실행 로직 (필요시 override 가능)
            Debug.Log("MonoCommand executed.");
        }

        public virtual void Execute()
        {
            Execute(null); // 파라미터가 없는 경우 기본 파라미터로 null을 사용합니다.
        }
    }
}
