//-------------------------------------------------------- // [Author]: 玩个游戏 // [ Date ]: Tuesday, March 19, 2019 //-------------------------------------------------------- using UnityEngine; [ExecuteAlways] [RequireComponent(typeof(RectTransform))] public class UIPrefabLoader : MonoBehaviour { [SerializeField] protected string m_PrefabName; public virtual string prefabName { get { return m_PrefabName; } } protected GameObject instance; [ExecuteAlways] private void Awake() { Create(); } public void Reload() { instance = null; this.transform.ClearAllChilds(); Create(); } [ContextMenu("Create")] public virtual void Create() { if (instance != null) return; if (string.IsNullOrEmpty(prefabName)) return; var find = this.transform.Find(prefabName); if (find) { instance = find.gameObject; return; } instance = UIUtility.CreateWidget(prefabName, prefabName); instance.transform.SetParentEx(this.transform, Vector3.zero, Quaternion.identity, Vector3.one); } }