seefood_diet / Assets / Scripts / SDUIPage.cs
SDUIPage.cs
Raw
using System;
using UniRx;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.UI;

public interface ISDUIPage : ISDUIElement {

}

public class SDUIPage : SDUIElement, ISDUIPage {

    [SerializeField] protected Image m_BgImage;
    [SerializeField] protected RectTransform m_HeaderTransform;
    [SerializeField] protected RectTransform m_BodyTransform;
    [SerializeField] protected RectTransform m_FooterTransform;

    protected virtual void Start () {

        var safeArea = SDEnvironment.Default.SafeAreaInset;

        m_HeaderTransform.anchoredPosition = new Vector2 (0, -safeArea.Top);
        m_FooterTransform.anchoredPosition = new Vector2 (0, safeArea.Bottom);
        m_BodyTransform.offsetMax = new Vector2 (m_BodyTransform.offsetMax.x, safeArea.Top);
        m_BodyTransform.offsetMin = new Vector2 (m_BodyTransform.offsetMin.x, safeArea.Bottom);
    }

    protected IObservable<GameObject> SetHeaderObject (string elementAddress) {

        return SDAssetUtils.InstantiateAsync (elementAddress, m_HeaderTransform);
    }

    protected IObservable<GameObject> SetBodyObject (string elementAddress) {

        return SDAssetUtils.InstantiateAsync (elementAddress, m_BodyTransform);
    }

    protected IObservable<GameObject> SetFooterObject (string elementAddress) {

        return SDAssetUtils.InstantiateAsync (elementAddress, m_FooterTransform);
    }
}