Пример #1
0
 private void Awake()
 {
     Debug.Log("xlua resource manager start");
     _instance = this;
 }
        private void Update()
        {
            if (cur_state == State.Playing)
            {
                return;
            }

            switch (cur_state)
            {
            case State.None:
                break;

            case State.CheckExtractResource:
                if (cur_sub_state == SubState.Enter)
                {
                    cur_sub_state = SubState.Update;
                    Debug.LogWarning("首次解压游戏数据(不消耗流量)");
                    //loadingView.SetData(0.0f, "首次解压游戏数据(不消耗流量)");
                    this.gameObject.AddComponent <AssetHotFixManager>();
                    AssetHotFixManager.Instance.CheckExtractResource(delegate(float percent)
                    {
                        Debug.LogWarning("首次解压游戏数据(不消耗流量)进度:" + 0.3f * percent);
                        //loadingView.SetData(0.3f * percent, "首次解压游戏数据(不消耗流量)");
                    }, delegate()
                    {
                        Debug.Log("Main.cs CheckExtractResource OK!!!");
                        JumpToState(State.UpdateResourceFromNet);
                    });
                }
                break;

            case State.UpdateResourceFromNet:
                if (cur_sub_state == SubState.Enter)
                {
                    cur_sub_state = SubState.Update;
                    //loadingView.SetData(0.3f, "从服务器下载最新的资源文件...");
                    Debug.LogWarning("从服务器下载最新的资源文件...");
                    AssetHotFixManager.Instance.UpdateResource(delegate(float percent, string tip)
                    {
                        Debug.LogWarning(string.Format("进度:{0} - 提示语 {1}", 0.3f + 0.5f * percent, tip));
                        //loadingView.SetData(0.3f + 0.5f * percent, tip);
                    }, delegate(string result)
                    {
                        if (result == "")
                        {
                            Debug.Log("Main.cs UpdateResourceFromNet OK!!!");
                        }
                        else
                        {
                            Debug.Log(result);
                        }
                        JumpToState(State.InitAssetBundle);
                    });
                }
                break;

            case State.InitAssetBundle:
                if (cur_sub_state == SubState.Enter)
                {
                    cur_sub_state = SubState.Update;
                    //loadingView.SetData(0.8f, "初始化游戏资源...");
                    Debug.LogWarning("InitAssetBundle:初始化游戏资源...");
                    JumpToState(State.StartLogin);
                }
                break;

            case State.StartLogin:
                if (cur_sub_state == SubState.Enter)
                {
                    cur_sub_state = SubState.Update;
                    Debug.LogWarning("StartLogin:初始化游戏资源完毕...");
                    //loadingView.SetData(1, "初始化游戏资源完毕");
                    //XLuaManager.Instance.InitLuaEnv();
                    // loadingView.SetActive(false, 0.5f);
                    //XLuaManager.Instance.StartLogin(delegate ()
                    //{
                    //    Debug.Log("Main.cs XLuaManager StartLogin OK!!!");
                    JumpToState(State.StartGame);

                    XLuaResourceManager.Instance().OnInitialized(AppConst.AssetDir, delegate()
                    {
                        Debug.Log("AssetBundleManifest 加载完成");
                        UnltyLuaSceneManager.Instance.LoadScene(SceneEnem.MAIN);
                    });

                    //});
                }
                break;

            case State.StartGame:
                Debug.LogWarning("StartGame:开始游戏...");
                JumpToState(State.Playing);
                break;

            case State.Playing:


                break;

            default:
                break;
            }
        }