using UnityEngine;
using System.Collections;
public abstract class BaseUI : MonoBehaviour
{
//缓存 gameobject 和 transform
private GameObject _cacheGameObject;
public GameObject CacheGameObject
{
get
{
if (_cacheGameObject == null)
{
_cacheGameObject = this.gameObject;
}
return _cacheGameObject;
}
}
private Transform _cacheTransfrom;
public Transform CacheTransfrom
{
get
{
if (_cacheTransfrom == null)
{
_cacheTransfrom = this.transform;
}
return _cacheTransfrom;
}
}
//UI type
protected E_UIType _uiType;
public E_UIType UIType
{
get
{
return _uiType;
}
protected set
{
_uiType = value;
}
}
//UI State
protected E_UIState _uiState;
public E_UIState UIState
{
get
{
return this._uiState;
}
set
{
E_UIState old = this._uiState;
this._uiState = value;
if (old != this._uiState)
{
OnUIStateChange(this.gameObject, old, this._uiState);
}
}
}
void Awake()
{
OnAwake();
}
public virtual void OnAwake()
{
SetUIType();
}
void Start()
{
OnStart();
}
public virtual void OnStart()
{
this._uiState = E_UIState.None;
}
//重写UI Type
public abstract void SetUIType();
public virtual E_UIType GetUIType()
{
return UIType;
}
//On UI State Change
public virtual void OnUIStateChange(GameObject go, E_UIState oldS, E_UIState newS)
{
}
//Load Data
public virtual void LoadData(object args)
{
}
}