예제 #1
0
        /// <summary>

        #region 启动热更逻辑

        /// <summary>
        /// 初始化
        /// 修改版本,让这个启动逻辑由使用者自行处理
        /// </summary>
        /// <param name="mainProjectTypes">Editor模式下,UPM隔离了DLL需要手动传入</param>
        /// <param name="GameId">单游戏更新启动不需要id,多游戏更新需要id号</param>
        public void Launch(Type[] mainProjectTypes, Action <bool> clrBindingAction, string gameId = "default")
        {
            BDebug.Log("Persistent:" + Application.persistentDataPath);
            BDebug.Log("StreamingAsset:" + Application.streamingAssetsPath);
            //主工程启动
            IGameStart mainStart;

            foreach (var type in mainProjectTypes)
            {
                if (type.GetInterface(nameof(IGameStart)) != null)
                {
                    mainStart = Activator.CreateInstance(type) as IGameStart;
                    //注册
                    mainStart.Start();
                    OnUpdate     += mainStart.Update;
                    OnLateUpdate += mainStart.LateUpdate;
                    break;
                }
            }

            //开始资源检测
            AssetHelper.AssetHelper.CheckAssetPackageVersion(Application.platform, () =>
            {
                //1.美术目录
                BResources.Load(GameConfig.ArtRoot, GameConfig.CustomArtRoot);
                //2.sql
                SqliteLoder.Load(GameConfig.SQLRoot);
                //3.脚本,这个启动会开启所有的逻辑
                ScriptLoder.Load(GameConfig.CodeRoot, GameConfig.CodeRunMode, mainProjectTypes, clrBindingAction);
            });
        }
예제 #2
0
 static public void InitEditorFrame()
 {
     //BD生命周期启动
     BDApplication.Init();
     BDFrameEditorConfigHelper.Init();
     //编辑器下加载初始化
     BResources.Load(AssetLoadPath.Editor);
 }
예제 #3
0
        static public void LoadSameNameAsset()
        {
            //同个目录
            var o   = BResources.Load <GameObject>("AssetTest/Cube");
            var mat = BResources.Load <Material>("AssetTest/Cube");

            Assert.IsPass(o != null && mat != null, "加载同名文件失败!");
        }
        static public void Load()
        {
            //同个目录
            var o = BResources.Load <GameObject>("AssetTest/Cube");

            o = BResources.Load <GameObject>("AssetTest/Particle");
            //不同的runtime目录
            o = BResources.Load <GameObject>("CubeSVN");
        }
예제 #5
0
    public static void ChangeToGray(this Image img)
    {
        Material material = BResources.Load <Material>("Shader/UI_Gary") as Material;

        if (img != null && material != null)
        {
            img.material = material;
        }
    }
예제 #6
0
    private void btn_06()
    {
        List <GameObject> golist = new List <GameObject>();
        //1.同步加载
        var go    = BResources.Load <GameObject>("AssetTest/Cube");
        var load1 = GameObject.Instantiate(go);

        go = BResources.Load <GameObject>("Test/Cube");
        var load2 = GameObject.Instantiate(go);

        go = BResources.Load <GameObject>("AssetTest/Particle");
        var load3 = GameObject.Instantiate(go);

        go = BResources.Load <GameObject>("Char/001");
        var loadModel = GameObject.Instantiate(go);

        golist.Add(load1);
        golist.Add(load2);
        golist.Add(load3);
        golist.Add(loadModel);
        //2.异步加载单个
        var id = BResources.AsyncLoad <GameObject>("Test/Cube", (o) =>
        {
            var load4 = GameObject.Instantiate(o);
            golist.Add(load4);
        });

        //3.异步加载多个
        var list = new List <string>()
        {
            "AssetTest/Cube", "Test/Cube"
        };

        BResources.AsyncLoad(list, (i, i2) =>
        {
            //进度
            Debug.Log(string.Format("进度 {0} / {1}", i, i2));
        }, (map) =>
        {
            BDebug.Log("加载全部完成,资源列表:");
            foreach (var r in map)
            {
                BDebug.Log(string.Format("--> {0} : {1}", r.Key, r.Value.name));
                var _go = GameObject.Instantiate(r.Value);
                golist.Add(_go as  GameObject);
            }
        });


        IEnumeratorTool.WaitingForExec(5, () =>
        {
            foreach (var _go in golist)
            {
                GameObject.Destroy(_go);
            }
        });
    }
예제 #7
0
        public void Init()
        {
            var o = BResources.Load <GameObject>(data.ResurcePath);

            this.Trans = GameObject.Instantiate(o).transform;
            this.Trans.SetParent(Client.SceneRoot, false);
            //
            this.AniPlayer   = this.Trans.GetComponent <AniPlayer>();
            this.SkillPlayer = this.Trans.GetComponent <SkillPlayer_TBS>();
        }
        /// <summary>
        /// 初始化框架编辑器
        /// </summary>
        static public void InitFrameEditor()
        {
            //BD生命周期启动
            BDApplication.Init();
            BDFrameEditorConfigHelper.Init();
            //编辑器下加载初始化
            BResources.Load(AssetLoadPath.Editor);
            //初始化DLL
            var gAssembly = Assembly.LoadFile(BDApplication.Library + "/ScriptAssemblies/Assembly-CSharp.dll");
            var eAssemlby = Assembly.LoadFile(BDApplication.Library + "/ScriptAssemblies/Assembly-CSharp-Editor.dll");

            RegisterMainProjectAssembly(gAssembly, eAssemlby);
        }
        public void Do(IBattle battle, IHeroFSM selfFSM, IHeroFSM targetFSM)
        {
            var o = BResources.Load <GameObject>(this.se.StrParam0);

            effect = GameObject.Instantiate(o).transform;
            //在敌方阵营的特效 需要旋转


            //父节点
            Transform parent = null;

            if (se.DoubleParams0 == 1) //单体
            {
                if (targetFSM.Camp == 2)
                {
                    effect.eulerAngles = new Vector3(0, 180, 0);
                }
                parent = battle.World.GetPlayerRootTransform(targetFSM.ID);
            }
            else if (se.DoubleParams0 == 2)
            {
                parent = battle.World.GetPlayerRootTransform(targetFSM.Camp);
            }
            else if (se.DoubleParams0 == 3) //连接
            {
                parent = battle.World.GetPlayerRootTransform(selfFSM.Camp);
                var mypos  = battle.World.GetPlayerPos(selfFSM.ID);
                var tarpos = battle.World.GetPlayerPos(targetFSM.ID);

                //TODO 求两个向量夹角
                var v1  = new Vector2(mypos.x, mypos.z);
                var v2  = new Vector2(tarpos.x, tarpos.z);
                var dir = (v2 - v1).normalized;

                effect.LookAt(dir);
//              float angle = Vector3.Angle(mypos, tarpos);
//                effect.eulerAngles += new Vector3(0,angle,0);
            }

            effect.SetParent(parent, false);


            if (se.DoubleParams1 > 0)
            {
                IEnumeratorTool.WaitingForExec((float)se.DoubleParams1, () =>
                {
                    BResources.Destroy(effect);
                });
            }
        }
예제 #10
0
        static public int PlayEffectLooped(string name, Vector3 pos, int dir = -1, Transform follow = null)
        {
            effectCount++;
            var o = GameObject.Instantiate(BResources.Load <GameObject>(name));

            effectMap[effectCount] = o.transform;
            if (follow != null)
            {
                o.transform.SetParent(follow, false);
                o.transform.localPosition = Vector3.zero;
            }

            return(effectCount);
        }
예제 #11
0
 /// <summary>
 /// 初始化
 /// 修改版本,让这个启动逻辑由使用者自行处理
 /// </summary>
 /// <param name="GameId">单游戏更新启动不需要id,多游戏更新需要id号</param>
 public void Launch(string GameId = "")
 {
     BDebug.Log("Persistent:" + Application.persistentDataPath);
     BDebug.Log("StreamingAsset:" + Application.streamingAssetsPath);
     //开始资源检测
     AssetHelper.AssetHelper.CheckAssetPackageVersion(Application.platform, () =>
     {
         //1.美术目录
         BResources.Load(GameConfig.ArtRoot, GameConfig.CustomArtRoot);
         //2.sql
         SqliteLoder.Load(GameConfig.SQLRoot);
         //3.脚本,这个启动会开启所有的逻辑
         ScriptLoder.Load(GameConfig.CodeRoot, GameConfig.CodeRunMode);
     });
 }
예제 #12
0
        static StackObject *Load_5(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject *ptr_of_this_method;
            StackObject *__ret = ILIntepreter.Minus(__esp, 1);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            System.String @name = (System.String) typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
            __intp.Free(ptr_of_this_method);


            var result_of_this_method = BResources.Load <UnityEngine.Sprite>(@name);

            return(ILIntepreter.PushObject(__ret, __mStack, result_of_this_method));
        }
예제 #13
0
        public void Load()
        {
            //重置pos
            this.playersPos = new List <Vector3>();
            //加载场景
            var o = GameObject.Instantiate(BResources.Load <GameObject>(this.path));

            this.Transform = o.transform;
            this.Transform.SetParent(Client.SceneRoot, false);
            var playesPosTrans = this.Transform.Find("PlayerPos");

            foreach (Transform p in playesPosTrans)
            {
                this.playersPos.Add(p.position);
            }
        }
예제 #14
0
    /// <summary>
    /// 同步加载
    /// </summary>
    public void Load()
    {
        var o = BResources.Load <GameObject>(resourcePath);

        if (o == null)
        {
            Debug.LogError("窗口资源不存在:" + resourcePath);
            return;
        }
        var go = GameObject.Instantiate(o);

        Transform = go.transform;
        Transform.gameObject.SetActive(false);
//      ClientMain.AddToUIRoot(Transform);
        IsLoad = true;
        Init();
    }
예제 #15
0
        /// <summary>
        /// 初始化框架编辑器
        /// </summary>
        static public void InitBDFrameworkEditor()
        {
            //BD生命周期启动
            BDApplication.Init();
            BDEditorApplication.Init();
            //编辑器下加载初始化
            BResources.Load(AssetLoadPath.Editor);
            //加载主工程的DLL Type
            var assemblyPath      = BDApplication.Library + "/ScriptAssemblies/Assembly-CSharp.dll";
            var editorAssemlyPath = BDApplication.Library + "/ScriptAssemblies/Assembly-CSharp-Editor.dll";

            if (File.Exists(assemblyPath) && File.Exists(editorAssemlyPath))
            {
                var gAssembly = Assembly.LoadFile(assemblyPath);
                var eAssemlby = Assembly.LoadFile(editorAssemlyPath);
                RegisterMainProjectAssembly(gAssembly, eAssemlby);
            }
        }
예제 #16
0
 static public void InitBDEditorLife()
 {
     //Editor的管理器初始化
     RegisterEditorMgrInstance();
     //BD生命周期启动
     BDFrameEditorBehaviorHelper.Init();
     BDFrameEditorConfigHelper.Init();
     BDApplication.Init();
     //编辑器下加载初始化
     BResources.Load(AssetLoadPath.Editor);
     //调试器启动
     DebuggerServerProcessManager.Inst.Start();
     //TODO
     //这一行还是不能加到框架层,应该还是:哪里用 哪里主动load,
     //然后用完了close(SqliteLoder.Close())。
     //不然sql文件editor环境下一直被占用,很多麻烦事
     // SqliteLoder.Load(Application.streamingAssetsPath);
 }
예제 #17
0
        public void SetValue(object newObj)
        {
            if (newObj == null)
            {
                return;
            }

            if (componentAttr.CustomField != CustomField.Null) //先处理自定义的值
            {
                switch (componentAttr.CustomField)
                {
                case CustomField.ResourcePath:
                    if (componentAttr.ComponentType == ComponentType.Image)
                    {
                        if (value != null && value.ToString() == newObj.ToString())
                        {
                            break;
                        }
                        var c = component as Image;
                        c.sprite   = BResources.Load <Sprite>(newObj.ToString());
                        this.value = newObj;
                    }
                    break;

                case CustomField.GameObjectActive:
                {
                    component.gameObject.SetActive((bool)newObj);
                    this.value = newObj;
                }
                break;

                case CustomField.ComponentEnable:
                {
                    component.enabled = ((bool)newObj);
                    this.value        = newObj;
                }
                break;
                }
            }
            else
            {
                SetComponentValue(typesMap[componentAttr.ComponentType], componentAttr.ComponentField, this.component, newObj);
            }
        }
예제 #18
0
        static public void BDEditorInit()
        {
            #region 注册所以管理器,让管理器在编辑器下生效

            //项目所有类
            var types = typeof(BDLauncher).Assembly.GetTypes().ToList();
            //编辑器所有类
            var editorTypes = typeof(BDEditorMenuEnum).Assembly.GetTypes();
            types.AddRange(editorTypes);

            List <IMgr> mgrs = new List <IMgr>();
            foreach (var t in types)
            {
                if (t != null && t.BaseType != null && t.BaseType.FullName != null &&
                    t.BaseType.FullName.Contains(".ManagerBase`2"))
                {
                    var i = t.BaseType.GetProperty("Inst").GetValue(null, null) as IMgr;
                    mgrs.Add(i);
                    continue;
                }
            }

            foreach (var t in types)
            {
                foreach (var mgr in mgrs)
                {
                    mgr.CheckType(t);
                }
            }


            Debug.Log("BDFrameEditor:管理器注册完成");
            #endregion

            BApplication.Init();
            DebuggerServerProcessManager.Inst.Start();
            BDEditorHelper.Init();
            BResources.Load("");
            //TODO
            //这一行还是不能加到框架层,应该还是:哪里用 哪里主动load,
            //然后用完了close(SqliteLoder.Close())。
            //不然sql文件editor环境下一直被占用,很多麻烦事
            // SqliteLoder.Load(Application.streamingAssetsPath);
        }
예제 #19
0
//
    /// <summary>
    /// 同步加载
    /// </summary>
    public void Load()
    {
        var o = BResources.Load <GameObject>(resourcePath);

        if (o == null)
        {
            Debug.LogError("窗口资源不存在:" + resourcePath);
            return;
        }

        var go = GameObject.Instantiate(o);

        Transform = go.transform;
        Transform.gameObject.SetActive(false);
        IsLoad = true;
        //自动查找节点
        UITools.AutoSetTransformPath(this);
        Init();
    }
        /// <summary>
        /// Sets the value.
        /// </summary>
        /// <param name="o">O.</param>
        public void SetValue(object o)
        {
            if (o == null)
            {
                return;
            }

            // 先处理自定义的值
            if (componentAttribute.CustemField != CustemField.Null)
            {
                switch (componentAttribute.CustemField)
                {
                case CustemField.ResourcesPath:
                    if (componentAttribute.ComponentType == ComponentType.Image)
                    {
                        if (value != null && value.ToString() == o.ToString())
                        {
                            break;
                        }
                        var c = this.component as Image;
                        c.sprite   = BResources.Load <Sprite>(o.ToString());
                        this.value = o;
                    }
                    break;

                case CustemField.GameObjectActive:
                    this.component.gameObject.SetActive((bool)o);
                    this.value = o;
                    break;

                case CustemField.ComponentEnable:
                    this.component.enabled = ((bool)o);
                    this.value             = o;
                    break;
                }
            }
            else
            {
                SetComponentValue(typesMap[componentAttribute.ComponentType], componentAttribute.ComponentField, component, o);
            }
        }
예제 #21
0
        static public void BDEditorInit()
        {
            #region 注册所以管理器,让管理器在编辑器下生效

            //项目所有类
            var types = typeof(BDLauncher).Assembly.GetTypes().ToList();
            //编辑器所有类
            var editorTypes = typeof(BDEditorMenuEnum).Assembly.GetTypes();
            types.AddRange(editorTypes);

            List <IMgr> mgrs = new List <IMgr>();
            foreach (var t in types)
            {
                if (t != null && t.BaseType != null && t.BaseType.FullName != null &&
                    t.BaseType.FullName.Contains(".ManagerBase`2"))
                {
                    var i = t.BaseType.GetProperty("Inst").GetValue(null, null) as IMgr;
                    mgrs.Add(i);
                    continue;
                }
            }

            foreach (var t in types)
            {
                foreach (var mgr in mgrs)
                {
                    mgr.CheckType(t);
                }
            }


            Debug.Log("BDFrameEditor:管理器注册完成");
            #endregion

            DebuggerServerProcessManager.Inst.Start();
            BDEditorHelper.Init();
            BResources.Load("");
        }
예제 #22
0
        public void Load()
        {
            //重置pos
            this.playersPos = new List <Vector3>();
            //加载场景
            var o = GameObject.Instantiate(BResources.Load <GameObject>(this.path));

            this.Transform = o.transform;
            this.Transform.SetParent(Client.SceneRoot, false);
            var playesPosTrans = this.Transform.Find("PlayerPos");

            if (playesPosTrans != null)
            {
                foreach (Transform t in playesPosTrans)
                {
                    this.playersPos.Add(t.position);
                    palyersPosTransformList.Add(t);
                }
            }
            else
            {
                Debug.LogError("该场景没有指定【玩家坐标点】,请速速添加~");
            }

            var campCenterTrans = this.Transform.Find("CampCenter");

            if (campCenterTrans != null)
            {
                foreach (Transform t in campCenterTrans)
                {
                    campCenterTransformList.Add(t);
                }
            }
            else
            {
                Debug.LogError("该场景没有指定【队伍中心点】,请速速添加~");
            }
        }
예제 #23
0
    public override void Init()
    {
        Transform canvasTrans = GameObject.Find("Canvas").transform;

        BResources.Load("");
        GameObject go = BResources.Load <GameObject>("UITools");

        go = GameObject.Instantiate(go);
        go.transform.SetParent(canvasTrans, false);

        BDebug.Log(canvasTrans);


        var tools = new ToolsData()
        {
            tx_Item = "lizhi",
            tx_Icon = "24",
        };

        UITools.AutoSetComValue(go.transform, tools);


        var subWindow = new SubWindow_Logo(canvasTrans.Find("GameObject"));

        subWindow.Init();
        this.AddSubwindow("logo", subWindow);

        var data = new Data
        {
            name = "lizhi",
            age  = 24,
        };

        var windowData = new WindowData();

        windowData.AddData("logo", data);
        this.OpenSubwindow("logo", windowData);
    }
예제 #24
0
        /// <summary>
        /// 初始化
        /// 修改版本,让这个启动逻辑由使用者自行处理
        /// </summary>
        /// <param name="GameId">单游戏更新启动不需要id,多游戏更新需要id号</param>
        public void Launch(string GameId = "")
        {
            //初始化资源加载
            string coderoot = "";
            string sqlroot  = "";
            string artroot  = "";

            //各自的路径
            //art
            if (Config.ArtRoot == AssetLoadPath.Editor)
            {
                if (Application.isEditor)
                {
                    //默认不走AssetBundle
                    artroot = "";
                }
                else
                {
                    //手机默认直接读取Assetbundle
                    artroot = Application.persistentDataPath;
                }
            }
            else if (Config.ArtRoot == AssetLoadPath.Persistent)
            {
                artroot = Application.persistentDataPath;
            }

            else if (Config.ArtRoot == AssetLoadPath.StreamingAsset)
            {
                if (string.IsNullOrEmpty(Config.CustomArtRoot) == false)
                {
                    artroot = Config.CustomArtRoot;
                }
                else
                {
                    artroot = Application.streamingAssetsPath;
                }
            }

            //sql
            if (Config.SQLRoot == AssetLoadPath.Editor)
            {
                //sql 默认读streaming
                sqlroot = Application.streamingAssetsPath;
            }

            else if (Config.SQLRoot == AssetLoadPath.Persistent)
            {
                sqlroot = Application.persistentDataPath;
            }
            else if (Config.SQLRoot == AssetLoadPath.StreamingAsset)
            {
                sqlroot = Application.streamingAssetsPath;
            }

            //code
            if (Config.CodeRoot == AssetLoadPath.Editor)
            {
                //sql 默认读streaming
                coderoot = "";
            }
            else if (Config.CodeRoot == AssetLoadPath.Persistent)
            {
                coderoot = Application.persistentDataPath;
            }
            else if (Config.CodeRoot == AssetLoadPath.StreamingAsset)
            {
                coderoot = Application.streamingAssetsPath;
            }

            //多游戏更新逻辑
            if (Application.isEditor == false)
            {
                if (GameId != "")
                {
                    artroot  = artroot + "/" + GameId;
                    coderoot = coderoot + "/" + GameId;
                    sqlroot  = sqlroot + "/" + GameId;
                }
            }

            //异步
            BResources.Load(artroot, () =>
            {
                //sql
                SqliteLoder.Load(sqlroot);
                //异步 这里如果代码很早的时候就开始走表格逻辑,有可能报错,
                //但是大部分游戏应该不会,三层回调太丑,暂时用这个

                ScriptLoder.Load(coderoot, Config.CodeRunMode);
            });


            if (OnBDFrameLaunch != null)
            {
                OnBDFrameLaunch();
            }
        }
예제 #25
0
    public override void Init()
    {
        base.Init();

        //提示
        var isCodeHotfix = GameObject.Find("BDFrame").GetComponent <BDLauncher>().IsCodeHotfix;

        text_hotfixState.text = isCodeHotfix ? "热更模式:开" : "热更模式:关";

        //demo1: screenview 切换
        this.btn_01.onClick.AddListener(() => { ScreenViewManager.Inst.MainLayer.BeginNavTo("demo1"); });

        //demo2: ui window基本操作
        this.btn_02.onClick.AddListener(() =>
        {
            ScreenViewManager.Inst.MainLayer.BeginNavTo("demo2");

            //向demo2窗口发消息
            var d = WindowData.Create();
            d.AddData("rotation", UnityEngine.Random.Range(-359, 359));
            UIManager.Inst.SendMessage((int)WinEnum.Win_Demo2, d);
        });

        //demo3: uimvc模式
        this.btn_03.onClick.AddListener(() => { ScreenViewManager.Inst.MainLayer.BeginNavTo("demo3"); });

        //demo4: uitools使用
        this.btn_04.onClick.AddListener(() =>
        {
            UIManager.Inst.LoadWindows((int)WinEnum.Win_Demo4);
            UIManager.Inst.ShowWindow((int)WinEnum.Win_Demo4);
        });
        //demo5: sqlite 查询
        this.btn_05.onClick.AddListener(() =>
        {
            var ds = SqliteHelper.DB.GetTableRuntime().Where("id > 1").ToSearch <Hero>();

            foreach (var d in ds)
            {
                Debug.Log(JsonMapper.ToJson(d));
            }
        });
        //demo6:资源加载
        this.btn_06.onClick.AddListener(() =>
        {
            //1.同步加载
            var go = BResources.Load <GameObject>("Windows/window_demo1");

            //2.异步加载单个
            var id = BResources.AsyncLoad <GameObject>("Windows/window_demo1", (b, o) => { });
//            //取消任务
//            BResources.LoadCancel(id);6
//
//          //3.异步加载多个
            BResources.AsyncLoad(new List <string>()
            {
                "Windows/window_demo1", "Windows/window_demo2"
            },
                                 (i, i2) => { Debug.Log(string.Format("进度 {0} / {1}", i, i2)); }, (map) =>
            {
                BDebug.Log("加载全部完成,资源列表:");
                foreach (var r in map)
                {
                    BDebug.Log(string.Format("--> {0} : {1}", r.Key, r.Value.name));
                    GameObject.Instantiate(r.Value);
                }
            });
        });

        this.btn_07.onClick.AddListener(() =>
        {
            var path = Application.streamingAssetsPath;

            var t = VersionContorller.Start("http://127.0.0.1", path,
                                            (i, j) =>
            {
                Debug.LogFormat("资源更新进度:{0}/{1}", i, j);
            },
                                            (error) =>
            {
                Debug.LogError("错误:" + error);
            });
            //var result = t.Result;
            Debug.Log("下载状态返回:");
        });
    }
예제 #26
0
        /// <summary>
        /// 初始化
        /// 修改版本,让这个启动逻辑由使用者自行处理
        /// </summary>
        /// <param name="GameId">单游戏更新启动不需要id,多游戏更新需要id号</param>
        public void Launch(string GameId = "")
        {
            //初始化资源加载
            string coderoot = "";
            string sqlroot  = "";
            string artroot  = "";

            //各自的路径
            //art
            if (ArtRoot == AssetLoadPath.Editor)
            {
                if (Application.isEditor)
                {
                    //默认不走AssetBundle
                    artroot = "";
                }
                else
                {
                    //手机默认直接读取Assetbundle
                    artroot = Application.persistentDataPath;
                }
            }
            else if (ArtRoot == AssetLoadPath.Persistent)
            {
                artroot = Application.persistentDataPath;
            }

            else if (ArtRoot == AssetLoadPath.StreamingAsset)
            {
                artroot = Application.streamingAssetsPath;
            }

            //sql
            if (SQLRoot == AssetLoadPath.Editor)
            {
                //sql 默认读streaming
                sqlroot = Application.streamingAssetsPath;
            }

            else if (SQLRoot == AssetLoadPath.Persistent)
            {
                sqlroot = Application.persistentDataPath;
            }
            else if (SQLRoot == AssetLoadPath.StreamingAsset)
            {
                sqlroot = Application.streamingAssetsPath;
            }

            //code
            if (CodeRoot == AssetLoadPath.Editor)
            {
                //sql 默认读streaming
                coderoot = "";
            }

            else if (CodeRoot == AssetLoadPath.Persistent)
            {
                coderoot = Application.persistentDataPath;
            }
            else if (CodeRoot == AssetLoadPath.StreamingAsset)
            {
                coderoot = Application.streamingAssetsPath;
            }

            //多游戏更新逻辑
            if (Application.isEditor == false)
            {
                if (GameId != "")
                {
                    artroot  = artroot + "/" + GameId;
                    coderoot = coderoot + "/" + GameId;
                    sqlroot  = sqlroot + "/" + GameId;
                }
            }

            //sql
            SqliteLoder.Load(sqlroot);
            //art
            BResources.Load(artroot);
            //code
            LoadScrpit(coderoot);
        }
 static public void Register()
 {
     BResources.Load();
 }
예제 #28
0
 /// <summary>
 /// 加载接口
 /// </summary>
 /// <param name="path"></param>
 /// <typeparam name="T"></typeparam>
 static public T Load <T>(string path) where T : Object
 {
     return(BResources.Load <T>(path));
 }
예제 #29
0
 static public void Register()
 {
     //这里开启Assetbundle模式
     BResources.Load(AssetLoadPath.StreamingAsset);
 }
    public override void Init()
    {
        base.Init();

        //提示
//        var isCodeHotfix = GameObject.Find("BDFrame").GetComponent<BDLauncher>().IsCodeHotfix;
//        text_hotfixState.text = isCodeHotfix ? "热更模式:开" : "热更模式:关";

        //demo1: screenview 切换
        //代码:
        //Game@hotfix/demo1
        this.btn_01.onClick.AddListener(() => { ScreenViewManager.Inst.MainLayer.BeginNavTo("demo1"); });

        //demo2: ui window基本操作
        //代码:
        //Game@hotfix/demo2
        this.btn_02.onClick.AddListener(() =>
        {
            ScreenViewManager.Inst.MainLayer.BeginNavTo("demo2");

            //向demo2窗口发消息
            var d = WindowData.Create("rotation");
            d.AddData("rotation", UnityEngine.Random.Range(-359, 359));
            UIManager.Inst.SendMessage((int)WinEnum.Win_Demo2, d);
        });

        //demo3: uimvc模式
        //代码:
        //Game@hotfix/demo3
        this.btn_03.onClick.AddListener(() => { ScreenViewManager.Inst.MainLayer.BeginNavTo("demo3"); });

        //demo4: uitools使用
        //代码:
        //Game@hotfix/demo4
        this.btn_04.onClick.AddListener(() =>
        {
            UIManager.Inst.LoadWindows((int)WinEnum.Win_Demo4);
            UIManager.Inst.ShowWindow((int)WinEnum.Win_Demo4);
        });
        //demo5: sqlite 查询
        this.btn_05.onClick.AddListener(() =>
        {
            var ds = SqliteHelper.DB.GetTableRuntime().Where("id > 1").ToSearch <Hero>();

            foreach (var d in ds)
            {
                Debug.Log(JsonMapper.ToJson(d));
            }
        });
        //demo6:资源加载
        this.btn_06.onClick.AddListener(() =>
        {
            //1.同步加载
            var go = BResources.Load <GameObject>("Windows/window_demo1");

            //2.异步加载单个
            var id = BResources.AsyncLoad <GameObject>("Windows/window_demo1", (o) => { });

            //3.异步加载多个
            var list = new List <string>()
            {
                "Windows/window_demo1", "Windows/window_demo2"
            };
            BResources.AsyncLoad(list,
                                 (i, i2) =>
            {
                Debug.Log(string.Format("进度 {0} / {1}", i, i2));
            },
                                 (map) =>
            {
                BDebug.Log("加载全部完成,资源列表:");
                foreach (var r in map)
                {
                    BDebug.Log(string.Format("--> {0} : {1}", r.Key, r.Value.name));
                    GameObject.Instantiate(r.Value);
                }
            });
        });

        //代码:
        //Game@hotfix/demo_Manager_AutoRegister_And_Event
        this.btn_07.onClick.AddListener(() =>
        {
            var path = Application.persistentDataPath;

            VersionContorller.Start(UpdateMode.Repair, "http://127.0.0.1", path,
                                    (i, j) =>
            {
                Debug.LogFormat("资源更新进度:{0}/{1}", i, j);
            },
                                    (error) =>
            {
                Debug.LogError("错误:" + error);
            });
        });


        //发送消息机制
        this.btn_08.onClick.AddListener(() =>
        {
            DemoEventManager.Inst.Do(DemoEventEnum.TestEvent2);
        });
    }