private void OnPloadProcess(PloadData data) { PrefabCreator[] pcs = data.Go.GetComponentsInChildren <PrefabCreator>(true); for (int i = 0; i < pcs.Length; i++) { pcs[i].LoadAsset(); } PrefabLoader[] loaders = data.Go.GetComponentsInChildren <PrefabLoader>(true); for (int i = 0; i < loaders.Length; i++) { loaders[i].LoadPrefab(); } if (!CheckPloaded(pcs, loaders, data)) { if (m_IsPloadedHandler == 0) { m_IsPloadedHandler = ILRTimerManager.instance.AddTimer(50, int.MaxValue, delegate(int sequence) { CheckPloaded(pcs, loaders, data); }); } } }
bool CheckPloaded(PrefabCreator[] pcs, PrefabLoader[] loaders, PloadData data) { bool isPloaded = true; for (int i = 0; i < pcs.Length; i++) { if (!pcs[i].isCurrendAssetLoaded) { isPloaded = false; break; } } if (isPloaded) { for (int i = 0; i < loaders.Length; i++) { if (!loaders[i].IsAssetLoaded) { isPloaded = false; break; } } } if (isPloaded) { if (m_IsPloadedHandler != 0) { ILRTimerManager.instance.RemoveTimer(m_IsPloadedHandler); m_IsPloadedHandler = 0; } if (data.IsHotfix) { if (data.Go.GetComponent <UIControllerILR>() == null) { UIControllerILR ucr = data.Go.AddComponent <UIControllerILR>(); ucr.hotfixClassPath = hotfixClassPath; ucr.ILRObjInit(); } else { UIControllerILR ucr = data.Go.GetComponent <UIControllerILR>(); ucr.ILRObjInit(); } } OnAssetProcess(data.AssetName, data.Go); } return(isPloaded); }