| //-------------------------------------------------------- | 
| //    [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); | 
|     } | 
|   | 
| } |