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(); }
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); }
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); } }
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); } }
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)); }); } }
private static bool TryGameRunner(int gameId, out GameRunner gameRunner) { return(CTLTools.TryGameRunner(gameId, out gameRunner)); }