public IEnumerator LoadAndSetup(UIBaseLayer layer) { if (m_ui.root == null && !string.IsNullOrEmpty(m_ui.prefabPath)) { PrefabReceiver receiver = new PrefabReceiver(); yield return(UIController.implements.prefabLoader.Load(m_ui.prefabPath, receiver)); m_prefab = receiver.prefab; if (m_prefab != null) { GameObject g = GameObject.Instantiate(m_prefab) as GameObject; m_ui.root = g.transform; } } if (m_ui.root == null) { m_ui.root = new GameObject("root").transform; } m_ui.root.gameObject.SetActive(false); CollectComponents(m_ui.root.gameObject, layer); yield return(m_ui.OnLoaded((UIBase)layer.m_ui)); m_ui.root.gameObject.SetActive(true); }
public IEnumerator Load() { if (!ProgressState(State.Loading)) { ProgressState(State.Removing); yield break; } if (!string.IsNullOrEmpty(ui.prefabPath)) { PrefabReceiver receiver = new PrefabReceiver(); yield return(UIController.implements.prefabLoader.Load(ui.prefabPath, receiver)); m_prefab = receiver.prefab; } m_origin = new GameObject(ui.name); SetupStretchAll(m_origin.AddComponent <RectTransform>()); m_origin.transform.SetParent(m_parent, false); GameObject g = null; if (m_prefab != null) { g = GameObject.Instantiate(m_prefab) as GameObject; g.name = m_prefab.name; } else { g = new GameObject("root"); SetupStretchAll(g.AddComponent <RectTransform>()); } ui.root = g.transform; Transform parent = ui.View3D() ? UIController.instance.m_view3D : m_origin.transform; ui.root.SetParent(parent, false); ui.root.gameObject.SetActive(false); yield return(ui.OnLoaded()); Setup(); if (m_state != State.Loading) { ProgressState(State.Removing); yield break; } ui.root.gameObject.SetActive(true); ProgressState(State.Adding); }
private async UniTask LoadPrefab() { PrefabReceiver receiver = new PrefabReceiver(); await UIController.Implements.PrefabLoader.Load(Part.PrefabPath, receiver); m_Prefab = receiver.m_Prefab; if (m_Prefab == null) { Debug.LogError($"UIPartContainer Error LoadPrefab {Part.PrefabPath}"); return; } GameObject gameObject = Object.Instantiate(m_Prefab) as GameObject; if (gameObject != null) { Part.RootTransform = gameObject.transform; } }