Пример #1
0
        public virtual void Run(params object[] param)
        {
            if (_isRunning)
            {
                CLog.LogError("GameRunner,id=" + _id + " is running,can not run again!");
                return;
            }
            _isRunning = true;
            GameCfg gameCfg = GameConfig.GetGameCfg(this._id);

            if (GO == null)
            {
                GO = new GameObject(gameCfg.name);
                GameObject.DontDestroyOnLoad(GO);
            }
            Transform uiTrans = AppManager.Instance.GameStarter.transform.FindChild(gameCfg.ui + "_Template");

            if (uiTrans != null)
            {
                GameObject ui = GameObject.Instantiate(uiTrans.gameObject);
                CTLTools.AddChildToParent(ui, GO, false);
                ui.transform.Find("UICamera").GetComponent <Camera>().depth = gameCfg.uiDepth;
                ui.SetActive(true);
                ui.name = "UI";
            }
            else
            {
                CLog.LogError("can not find UI template in GameStarter!UI:" + gameCfg.ui);
            }

            STContainer = GO.AddComponent <SingletonContainer>();
            STContainer.ResourceMgr.Init(GameConfig.IsResourceLoadMode, string.Format("Assets/{0}/Res", gameCfg.rootDir));
            STContainer.LuaClient.BindGame(gameCfg.id);
            STContainer.LuaClient.StartGame();
        }
Пример #2
0
        public static GameObject CreateUGUIViewContainer(GameObject parent, int level)
        {
            Transform trans = parent.transform;
            Transform child = trans.FindChild(level.ToString());

            if (child == null)
            {
                GameObject go = new GameObject();
                CTLTools.AddChildToParent(go, parent, false);
                go.name = level.ToString();
                child   = go.transform;
                //子容器里面的对象排序
                int count = trans.childCount;
                _list.Clear();
                for (int i = 0; i < count; i++)
                {
                    _list.Add(trans.GetChild(i));
                }
                _list.Sort(delegate(Transform a, Transform b){
                    int aValue = int.Parse(a.name);
                    int bValue = int.Parse(b.name);
                    return(aValue - bValue);
                });
                for (int i = 0; i < _list.Count; i++)
                {
                    _list[i].SetSiblingIndex(i);
                }
            }
            return(child.gameObject);
        }
Пример #3
0
        public static void ConnectServer(int gameId, string ip, int port, Action <bool> callback)
        {
            GameRunner gameRunner;

            CTLTools.TryGameRunner(gameId, out gameRunner);
            if (gameRunner != null)
            {
                gameRunner.STContainer.SocketClientMgr.BeginConnect(ip, port, SocketClientType.Game, callback);
            }
        }
Пример #4
0
        public static void SendMsg(int gameId, int msgId, LuaByteBuffer data)
        {
            GameRunner gameRunner;

            CTLTools.TryGameRunner(gameId, out gameRunner);
            if (gameRunner != null)
            {
                gameRunner.STContainer.SocketClientMgr.SendMsg(SocketClientType.Game, (ushort)msgId, data.buffer);
            }
        }
Пример #5
0
        public static void RegisterNetMsg(int gameId, int msgId, NetMsgHander handler)
        {
            GameRunner gameRunner;

            CTLTools.TryGameRunner(gameId, out gameRunner);
            if (gameRunner != null)
            {
                gameRunner.STContainer.SocketClientMgr.RegisterListener(SocketClientType.Game, (ushort)msgId, (MsgPacket packet) => {
                    handler.Invoke((int)packet.ID, (int)packet.Status, new LuaByteBuffer(packet.Buff));
                });
            }
        }
Пример #6
0
 private static bool TryGameRunner(int gameId, out GameRunner gameRunner)
 {
     return(CTLTools.TryGameRunner(gameId, out gameRunner));
 }