using UnityEngine;

/// <summary>
/// 屏幕适配组件的基类
/// </summary>
public abstract class AdaptationBase : MonoBehaviour
{
    /*
     * 采用继承的方式的好处是：不需要在每个子类中都去注册和注销适配逻辑，也不会忘记注册或注销
     */

    /// <summary>
    /// 在Awake方法中把具体的适配逻辑注册到管理器中
    /// </summary>
    protected virtual void Awake()
    {
        AdaptationManager.Instance.onScreenResize += OnScreenResize;
    }

    /// <summary>
    /// 在OnDestroy方法中把具体的适配逻辑从管理器注销
    /// </summary>
    protected virtual void OnDestroy()
    {
        AdaptationManager.Instance.onScreenResize += OnScreenResize;
    }

    /// <summary>
    /// 具体的适配逻辑交给子类去实现
    /// </summary>
    protected abstract void OnScreenResize();
}
