コード例 #1
0
        public void ShowUpdateUI()
        {
            XYHY.IResourceMgr resMgr       = GameKernel.Get <XYHY.IResourceMgr>();
            Object            verUpdateObj = resMgr.LoadResidentMemoryObjSync(new AssetBundleParams("Prefabs/UI/VersionUpdate/version_update_ui", typeof(GameObject)));
            GameObject        verUpdateGo  = GameObject.Instantiate(verUpdateObj) as GameObject;

            DontDestroyOnLoad(verUpdateGo);
            verUpdateGo.transform.parent     = UICamera.mainCamera.transform;
            verUpdateGo.transform.localScale = Vector3.one;
        }
コード例 #2
0
ファイル: MessageBox.cs プロジェクト: atom-chen/shisanshui-1
    public static MessageBox CreateMessageBox()
    {
        XYHY.IResourceMgr  resMgr       = Framework.GameKernel.Get <XYHY.IResourceMgr>();
        UnityEngine.Object verUpdateObj = resMgr.LoadNormalObjSync(new AssetBundleParams("Prefabs/UI/VersionUpdate/message_box_ui", typeof(GameObject)));
        GameObject         verUpdateGo  = GameObject.Instantiate(verUpdateObj) as GameObject;

        XYHY.LuaDestroyBundle ctrl = verUpdateGo.AddComponent <XYHY.LuaDestroyBundle>();
        ctrl.BundleName = "Prefabs/UI/VersionUpdate/message_box_ui";
        ctrl.ResType    = typeof(GameObject);
        verUpdateGo.transform.parent     = UICamera.mainCamera.transform;
        verUpdateGo.transform.localScale = Vector3.one;

        return(verUpdateGo.GetComponent <MessageBox>());
    }
コード例 #3
0
        private IEnumerator StartLoadingCor()
        {
            XYHY.IResourceMgr resMgr = Framework.GameKernel.GetResourceMgr();
            int displayProgress = 0;
            int toProgress = 0;
            int sceneLoadPercent = 20;
            int processSpeed = 4;
            TimeCostLog.Instance.WriteLog(SceneMgr.Instance.SceneId, eTimeCost.ePreLoad);
            TimeCostLog.Instance.WriteLog(SceneMgr.Instance.SceneId, eTimeCost.ePreloadScene);

            int sceneAssetLoadPercent = 30;
            PreloadResult preloadSceneResult = new PreloadResult();
            PreloadManager.Instance.PreloadSceneAsset(SceneMgr.Instance.CurrentScene, ref preloadSceneResult);
            if (preloadSceneResult != null && preloadSceneResult.TotalCount > 0)
            {
                while (true)
                {
                    toProgress = (int)(preloadSceneResult.PreloadPercent * sceneLoadPercent);
                    while (displayProgress < toProgress)
                    {
                        displayProgress += processSpeed;
                        setLoadingPercentage(displayProgress);
                        yield return new WaitForEndOfFrame();
                    }
                    if (preloadSceneResult.PreloadPercent >= 1 && toProgress == sceneLoadPercent)
                    {
                        break;
                    }
                    yield return null;
                }
            }
            preloadSceneResult = null;

            TimeCostLog.Instance.WriteLog(SceneMgr.Instance.SceneId, eTimeCost.ePreloadScene,false);

            TimeCostLog.Instance.WriteLog(SceneMgr.Instance.SceneId, eTimeCost.ePreUnloadScn);
            //卸载场景物件
            resMgr.UnloadLastSceneAsset(SceneMgr.Instance.CurrentScene);
            TimeCostLog.Instance.WriteLog(SceneMgr.Instance.SceneId, eTimeCost.ePreUnloadScn, false);

            //预加载异步资源
            PreloadResult preloadAsyncAssetResult = new PreloadResult();
            TimeCostLog.Instance.WriteLog(SceneMgr.Instance.SceneId, eTimeCost.ePreloadAsset);

            PreloadManager.Instance.PreloadAsyncAssets(SceneMgr.Instance.SceneId, ref preloadAsyncAssetResult);
            TimeCostLog.Instance.WriteLog(SceneMgr.Instance.SceneId, eTimeCost.ePreloadAsset,false);

            TimeCostLog.Instance.WriteLog(SceneMgr.Instance.SceneId, eTimeCost.ePreLoadAssetAsy);

            if (preloadAsyncAssetResult != null && preloadAsyncAssetResult.TotalCount > 0)
            {
                while (true)
                {
                    toProgress = sceneLoadPercent + (int)(preloadAsyncAssetResult.PreloadPercent * sceneAssetLoadPercent);

                    while (displayProgress < toProgress)
                    {
                        displayProgress += processSpeed;
                        setLoadingPercentage(displayProgress);
                        yield return new WaitForEndOfFrame();
                    }
                    if (preloadAsyncAssetResult.PreloadPercent >= 1 && toProgress == (sceneLoadPercent + sceneAssetLoadPercent))
                    {
                        preloadAsyncAssetResult = null;
                        break;
                    }
                    yield return null;
                }
            }
            TimeCostLog.Instance.WriteLog(SceneMgr.Instance.SceneId, eTimeCost.ePreLoadAssetAsy,false);

            //预加载同时有同步和异步的资源
            PreloadResult preloadSyncAndAsyncAssetsResult = new PreloadResult();
            PreloadManager.Instance.PreloadSyncAndAsyncAssets(SceneMgr.Instance.SceneId, ref preloadSyncAndAsyncAssetsResult);

            TimeCostLog.Instance.WriteLog(SceneMgr.Instance.SceneId, eTimeCost.ePreLoadSycAndAsy);
            if (preloadSyncAndAsyncAssetsResult != null && preloadSyncAndAsyncAssetsResult.TotalCount > 0)
            {
                while (true)
                {
                    toProgress = sceneLoadPercent + sceneAssetLoadPercent + (int)(preloadSyncAndAsyncAssetsResult.PreloadPercent * (100 - sceneLoadPercent - sceneAssetLoadPercent));

                    while (displayProgress < toProgress)
                    {
                        displayProgress += processSpeed;
                        setLoadingPercentage(displayProgress);
                        yield return new WaitForEndOfFrame();
                    }
                    if (preloadSyncAndAsyncAssetsResult.PreloadPercent >= 1 && toProgress == 100)
                    {
                        preloadSyncAndAsyncAssetsResult = null;
                        break;
                    }
                    yield return null;
                }
            }
            TimeCostLog.Instance.WriteLog(SceneMgr.Instance.SceneId, eTimeCost.ePreLoadSycAndAsy,false);
            
            toProgress = 100;
            while (displayProgress < toProgress)
            {
                displayProgress += processSpeed;
                setLoadingPercentage(displayProgress);
                yield return null;
            }
        }