/// <summary> /// 更新下载进度 /// </summary> /// <param name="done"></param> /// <param name="total"></param> public void DownloadProcess(long done, long total) { SampleDebuger.Log("++ done: " + done + " total: " + total); progressSlider.value = done > 0 ? (float)done / (float)total : 0; //descText.text = LangSetting.GetWord("UI_DownLoadingRes_desc"); //statusText.text = Mathf.Floor(done / 1024).ToString() + "KB /" + Mathf.Floor(total / 1024).ToString() + "KB"; }
IEnumerator CheckVersion() { string path = Globals.wwwPersistenPath + "/version.txt"; WWW www = new WWW(path); yield return(www); string oldVersionStr = "0.0.0"; if (www.error == null) { oldVersionStr = www.text.Trim(); } Version oldVersion = new Version(oldVersionStr); www = new WWW(Globals.wwwStreamingPath + "/version.txt"); yield return(www); string curVersionStr = www.text.Trim(); Version curVersion = new Version(curVersionStr); SampleDebuger.Log("old version : " + oldVersion.proCurVersion + ", cur version : " + curVersion.proCurVersion); if (oldVersion.IsLower(curVersion)) { DeleteUpdateBundle(); } }
public bool InitSession(SessionType eType, string szIp, UInt16 wPort) { SampleDebuger.Log("type : " + eType.ToString() + ", ip : " + szIp + ", port : " + wPort); m_szIP = szIp; m_wPort = wPort; m_eSessionType = eType; switch (m_eSessionType) { case SessionType.SessionType_TCP: { m_pSession = new BinarySession(this); } break; case SessionType.SessionType_WebSocket: { m_pSession = new WebSocketSession(this); } break; default: { return(false); //throw new ArgumentException("error session type : " + m_eSessionType.ToString()); } } m_pSession.Init(m_szIP, m_wPort); m_pClientSocket = m_pSession.Reconnect(); return(true); }
public override IFxClientSocket Reconnect() { SampleDebuger.Log("Reconnect"); m_pSocket.Init(this); m_pSocket.Connect(m_oGameObject, m_szIp, m_wPort); return(m_pSocket); }
public void Init(string szUrl) { SampleDebuger.Log(szUrl); Uri uri = new Uri(szUrl); string szBaseUrl; NameValueCollection nvcParam; ParseUrl(szUrl, out szBaseUrl, out nvcParam); PlayerData.Instance().SetPlatform(nvcParam.Get("platform")); PlayerData.Instance().SetName(nvcParam.Get("name")); PlayerData.Instance().SetHeadImage(nvcParam.Get("head_img")); StartCoroutine(H5Helper.SendGet(PlayerData.Instance().proHeadImage, delegate(Texture2D tex) { PlayerData.Instance().SetHeadTex(tex); }) ); PlayerData.Instance().SetAccessToken(nvcParam.Get("access_token")); PlayerData.Instance().SetOpenId(nvcParam.Get("openid")); string szSex = nvcParam.Get("sex"); string szExpiresDate = nvcParam.Get("expires_date"); uint dwSex = 0; uint dwExpiresDate = 0; uint.TryParse(szSex, out dwSex); uint.TryParse(szExpiresDate, out dwExpiresDate); PlayerData.Instance().SetSex(dwSex); PlayerData.Instance().SetExpiresDate(dwExpiresDate); }
IEnumerator GetServerVersion() { string szVersion = GameInstance.Instance().proServerUrl + GameInstance.Instance().proServerVersion + "?" + Time.realtimeSinceStartup.ToString(); WWW www = new WWW(szVersion); yield return(www); if (!string.IsNullOrEmpty(www.error)) { //无法连接资源服务器 SampleDebuger.LogWarning("url " + www.url + " ,error:" + www.error); m_comEnvChecker.GameInit(); yield break; } if (!www.isDone) { yield return(www); } string versionStr = www.text.Trim(); m_verServerVersion = new Version(versionStr); SampleDebuger.Log(" server version = " + m_verServerVersion.ToString()); if (VersionManager.Instance().m_verVersion.IsLower(m_verServerVersion)) { StartCoroutine(CheckVersionContent()); } else { //进入游戏 m_comEnvChecker.GameInit(); } }
public void OnLoginNotifyPlayerTeamInfo(byte[] pBuf) { GameProto.LoginNotifyPlayerTeamInfo oRet = GameProto.LoginNotifyPlayerTeamInfo.Parser.ParseFrom(pBuf); if (oRet == null) { SampleDebuger.Log("OnLoginNotifyPlayerTeamInfo error parse"); return; } string szContent = "OnLoginNotifyPlayerTeamInfo team id : " + oRet.QwTeamId.ToString() + "\n"; for (int i = 0; i < oRet.TeamRoleData.Count; ++i) { szContent += "playerid : " + oRet.TeamRoleData[i].RoleData.QwPlayerId.ToString() + ", slot id : " + oRet.TeamRoleData[i].DwSlotId.ToString() + ", serverid : " + oRet.TeamRoleData[i].DwServerId.ToString() + "\n"; } SampleDebuger.Log(szContent); TeamData.Instance().SetTeamRoleData(oRet.TeamRoleData); if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name != GameConstant.g_szLobbyTeamScene) { AssetBundleLoader.Instance().LoadLevelAsset(GameConstant.g_szLobbyTeamScene, delegate() { } ); } else { TeamPlayerManager.SyncTeamInfo(oRet); } }
/// <summary> /// 下载进度变化回调 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnDownloadProcess(object sender, DownloadProgressChangedEventArgs e) { SampleDebuger.Log(string.Format("received: {0} total: ", e.BytesReceived, e.TotalBytesToReceive)); lock (AssetDownloader.Instance().m_lockWeb) { m_qwLoaded = e.BytesReceived; m_qwTotal = e.TotalBytesToReceive; } }
public void OnGameNotifyPlayerGameRoleData(byte[] pBuf) { GameProto.GameNotifyPlayerGameRoleData oRet = GameProto.GameNotifyPlayerGameRoleData.Parser.ParseFrom(pBuf); if (oRet == null) { SampleDebuger.Log("OnGameNotifyPlayerGameRoleData error parse"); return; } }
public void OnLoginAckPlayerInviteTeam(byte[] pBuf) { GameProto.LoginAckPlayerInviteTeam oRet = GameProto.LoginAckPlayerInviteTeam.Parser.ParseFrom(pBuf); if (oRet == null) { SampleDebuger.Log("OnLoginAckPlayerInviteTeam error parse"); return; } SampleDebuger.Log("invite team ret : " + oRet.DwResult.ToString()); }
public IEnumerator Reload() { var request = AssetBundleManager.ReloadManifest(GetBundleDirName()); if (request != null) { SampleDebuger.Log("reloading manifest"); yield return(StartCoroutine(request)); } }
public void OnLoginNotifyPlayerGameKick(byte[] pBuf) { GameProto.LoginNotifyPlayerGameKick oRet = GameProto.LoginNotifyPlayerGameKick.Parser.ParseFrom(pBuf); if (oRet == null) { SampleDebuger.Log("OnLoginNotifyPlayerGameKick error parse"); return; } SampleDebuger.Log("game kick ret : " + oRet.DwResult.ToString()); }
public void OnConnect() { SampleDebuger.Log("game connected"); GameData.Instance().Reset(); GameProto.PlayerRequestGameEnter oRequest = new GameProto.PlayerRequestGameEnter(); oRequest.QwPlayerId = PlayerData.Instance().proPlayerId; SysUtil.SendMessage(m_pSession, oRequest, "GameProto.PlayerRequestGameEnter"); }
IEnumerator CheckVersionContent() { string szVersionMark = GameInstance.Instance().proServerUrl + string.Format(GameInstance.Instance().proServerMarkPath, VersionManager.Instance().GetVersionUrl()) + "?" + Time.realtimeSinceStartup.ToString(); WWW www = new WWW(szVersionMark); SampleDebuger.Log("+++++++++++ checkVersionContent +++++++++++ "); yield return(www); if (!string.IsNullOrEmpty(www.error)) { SampleDebuger.Log(szVersionMark); AssetBundleLoader.Instance().LoadAsset(GameObjectConstant.GetABUIPath(GameObjectConstant.g_szConfirmPanel), GameObjectConstant.g_szConfirmPanel, delegate(UnityEngine.Object ob) { GameObject go_RoleList = Instantiate((GameObject)ob, MainCanvas.Instance().transform); go_RoleList.GetComponent <ConfirmPanel>().Init("检测到大版本更新,请前往官网或者应用商店下载最新版本", delegate(object ob1) { //todo 下载 SampleDebuger.LogGreen("begin down load"); }, null, delegate(object ob1) { //todo 取消下载 SampleDebuger.LogGreen("cancel down load"); }, null ); } ); yield break; } //下载更新包 if (Application.internetReachability == NetworkReachability.ReachableViaLocalAreaNetwork) { m_comEnvChecker.StartDownload(); } else { AssetBundleLoader.Instance().LoadAsset(GameObjectConstant.GetABUIPath(GameObjectConstant.g_szConfirmPanel), GameObjectConstant.g_szConfirmPanel, delegate(UnityEngine.Object ob) { GameObject go_RoleList = Instantiate((GameObject)ob, MainCanvas.Instance().transform); go_RoleList.GetComponent <ConfirmPanel>().Init("检测到游戏更新,请点击更新!", delegate(object ob1) { m_comEnvChecker.StartDownload(); }, null, delegate(object ob1) { //todo 取消下载 SampleDebuger.LogGreen("cancel down load"); }, null ); } ); } }
public void OnLoginNotifyPlayerRefuseEnterTeam(byte[] pBuf) { GameProto.LoginNotifyPlayerRefuseEnterTeam oRet = GameProto.LoginNotifyPlayerRefuseEnterTeam.Parser.ParseFrom(pBuf); if (oRet == null) { SampleDebuger.Log("OnLoginNotifyPlayerRefuseEnterTeam error parse"); return; } SampleDebuger.LogError("OnLoginNotifyPlayerRefuseEnterTeam reason : " + oRet.SzReason); }
public void OnGameNotifyPlayerGameReadyTime(byte[] pBuf) { GameProto.GameNotifyPlayerGameReadyTime oRet = GameProto.GameNotifyPlayerGameReadyTime.Parser.ParseFrom(pBuf); if (oRet == null) { SampleDebuger.LogYellow("GameNotifyPlayerGameReadyTime error parse"); return; } SampleDebuger.Log("game ready time left : " + oRet.DwLeftTime.ToString()); ReadyTime.SetReadyTime(oRet.DwLeftTime); }
public void OnGameAckPlayerEnter(byte[] pBuf) { GameProto.GameAckPlayerEnter oRet = GameProto.GameAckPlayerEnter.Parser.ParseFrom(pBuf); if (oRet == null) { SampleDebuger.LogYellow("OnGameAckPlayerEnter error parse"); return; } SampleDebuger.Log("game enter : " + oRet.DwResult.ToString()); TetrisDataManager.Instance().SetOwner(PlayerData.Instance().proPlayerId); }
public void DownloadUrl(string url) { m_dwCurFileCount++; Uri uri = new Uri(url, UriKind.Absolute); string tmpFile = m_szTempPath + "/" + m_dwCurFileCount + "-" + DateTime.Now.Ticks.ToString(); m_webClient.DownloadFileAsync(uri, tmpFile, tmpFile); SampleDebuger.Log("++++ downloading url: " + uri.ToString()); }
public void OnLoginAckPlayerGameStart(byte[] pBuf) { GameProto.LoginAckPlayerGameStart oRet = GameProto.LoginAckPlayerGameStart.Parser.ParseFrom(pBuf); if (oRet == null) { SampleDebuger.Log("OnLoginAckPlayerGameStart error parse"); return; } SampleDebuger.Log("game start : " + oRet.DwResult.ToString()); H5Manager.Instance().ConnectGame(oRet.SzListenIp, (ushort)oRet.DwPlayerPort); }
/// <summary> /// 版本检查 /// </summary> /// <returns></returns> IEnumerator CheckVersion() { string path = Globals.wwwPersistenPath + "/version.txt"; WWW www = new WWW(path); yield return(www); SampleDebuger.Log("version = " + www.text); if (string.IsNullOrEmpty(www.text) || (www.error != null)) { //没读取到,是第一次安装,拷贝资源 SampleDebuger.Log("First Time Launch!"); //读取应用程序版本号 www = new WWW(Globals.wwwStreamingPath + "/version.txt"); yield return(www); m_szCurrentVersion = www.text.Trim(); //versionText.text = currentVersion; BeginCopy(); www.Dispose(); } else { //已安装过 SampleDebuger.Log(" installed"); string oldVersion = www.text.Trim(); //读取当前旧版本号 //读取应用程序版本号 www = new WWW(Globals.wwwStreamingPath + "/version.txt"); yield return(www); m_szCurrentVersion = www.text.Trim(); //versionText.text = currentVersion; //版本号小于安装程序中包含的版本号,删除旧资源再拷贝当前资源 Version old_v = new Version(oldVersion); Version app_v = new Version(m_szCurrentVersion); if (old_v.IsLower(app_v)) { string abPath = Application.persistentDataPath + "/AssetBundles"; FileUtil.RemoveFolder(abPath); BeginCopy(); } else { VersionManager.Instance().proCurVersion = oldVersion; _assetUpdater.CheckVersionWithServer(); } } }
/// <summary> /// 将文件拷贝到路径中 /// </summary> /// <param name="streamPath"></param> /// <returns></returns> IEnumerator BeginCopy(string path) { yield return(new WaitForSeconds(2.0f)); WWW www = new WWW(path + "/streamPath.txt"); yield return(www); string[] content = www.text.Split(new string[] { "\n" }, System.StringSplitOptions.RemoveEmptyEntries); www.Dispose(); int total = content.Length; int curIndex = 0; foreach (string item in content) { string it = item.Trim(); //window下会有\r,需要删除 int fileFlag = int.Parse(it.Split('|')[1]); it = it.Split('|')[0]; SampleDebuger.Log(path); it = it.Trim(); if (fileFlag == 1) { www = new WWW(path + it); yield return(www); File.WriteAllBytes(Application.persistentDataPath + it, www.bytes); //更新进度 SetProcess(curIndex, total); www.Dispose(); } else if (fileFlag == 0) { SampleDebuger.Log("Create dir " + Application.persistentDataPath + it); Directory.CreateDirectory(Application.persistentDataPath + it); } else { SampleDebuger.LogError("既不是文件夹也不是文件 路径为" + Application.persistentDataPath + it); } ++curIndex; } SampleDebuger.Log(" writeversion"); // 同步版本 VersionManager.Instance().proCurVersion = m_szCurrentVersion; _assetUpdater.CheckVersionWithServer(); }
public static IEnumerator SendGet(string _url, System.Action <string> cbf) { WWW getData = new WWW(_url); yield return(getData); if (getData.error != null) { SampleDebuger.Log(getData.error); } else { cbf(getData.text); } }
public override bool Update() { base.Update(); if (m_Request != null && m_Request.isDone) { AssetBundleManager.AssetBundleManifestObject = GetAsset <AssetBundleManifest>(); SampleDebuger.Log("AssetBundleManifest was been loaded!"); return(false); } else { return(true); } }
public static IEnumerator SendPost(string _url, WWWForm _wForm, System.Action <string> cbf) { WWW postData = new WWW(_url, _wForm); yield return(postData); if (postData.error != null) { SampleDebuger.Log(postData.error); } else { cbf(postData.text); } }
public static IEnumerator SendGet(string _url, System.Action <Texture2D> cbf) { WWW imageData = new WWW(_url); yield return(imageData); if (imageData.error != null) { SampleDebuger.Log(imageData.error); } else { cbf(imageData.texture); } }
//生成AB包 public static void GenerateAB() { string resPath = GetABPath(); if (!Directory.Exists(resPath)) { Directory.CreateDirectory(resPath); } if (Packager.bAssetBundle) { SampleDebuger.Log("build : " + resPath); BuildPipeline.BuildAssetBundles(resPath, BuildAssetBundleOptions.UncompressedAssetBundle | BuildAssetBundleOptions.ForceRebuildAssetBundle, EditorUserBuildSettings.activeBuildTarget); } AssetDatabase.Refresh(); }
public void OnPlayerRequestGameTest(byte[] pBuf) { GameProto.PlayerRequestGameTest oTest = GameProto.PlayerRequestGameTest.Parser.ParseFrom(pBuf); if (oTest == null) { SampleDebuger.LogYellow("OnTest error parse"); return; } SampleDebuger.Log(oTest.SzTest.ToString()); oTest.SzTest = String.Format("{0}, {1}, {2}, {3}, {4}, {5}", "sessionobject.cs", 106, "SessionObject::OnRecv", dw1++, ToString(), DateTime.Now.ToLocalTime().ToString()); SysUtil.SendMessage(m_pSession, oTest, "GameProto.PlayerRequestGameTest"); }
public void OnLoginAckPlayerOnLinePlayer(byte[] pBuf) { GameProto.LoginAckPlayerOnLinePlayer oRet = GameProto.LoginAckPlayerOnLinePlayer.Parser.ParseFrom(pBuf); if (oRet == null) { SampleDebuger.Log("OnLoginAckPlayerOnLinePlayer error parse"); return; } SampleDebuger.Log("online player ret : " + oRet.DwResult.ToString()); AssetBundleLoader.Instance().LoadAsset(GameObjectConstant.GetABUIPath(GameObjectConstant.g_szPlayerList), GameObjectConstant.g_szPlayerList, delegate(UnityEngine.Object ob) { RoleList pRoleList = RoleList.CreateInstance(ob, MainCanvas.Instance().transform); pRoleList.SetPlayerIds(oRet.QwPlayerId); } ); }
public void OnLoginNotifyPlayerInviteTeam(byte[] pBuf) { GameProto.LoginNotifyPlayerInviteTeam oRet = GameProto.LoginNotifyPlayerInviteTeam.Parser.ParseFrom(pBuf); if (oRet == null) { SampleDebuger.Log("OnLoginAckPlayerOnLinePlayer error parse"); return; } SampleDebuger.Log("on invitee team player id : " + oRet.QwPlayerId.ToString() + " team id : " + oRet.QwTeamId.ToString()); AssetBundleLoader.Instance().LoadAsset(GameObjectConstant.GetABUIPath(GameObjectConstant.g_szConfirmPanel), GameObjectConstant.g_szConfirmPanel, delegate(UnityEngine.Object ob) { GameObject go_RoleList = Instantiate((GameObject)ob, MainCanvas.Instance().transform); go_RoleList.GetComponent <ConfirmPanel>().Init("player : " + oRet.QwPlayerId.ToString() + " invite you to team :" + oRet.QwTeamId.ToString(), IntoInviteTeam, oRet, NotIntoInviteTeam, oRet); } ); }
public void OnRoleData(string szData) { SampleDebuger.Log(szData); RoleDataRet oData = JsonUtility.FromJson <RoleDataRet>(szData); GameProto.PlayerRequestLogin oTest = new GameProto.PlayerRequestLogin(); oTest.SzToken = oData.token; oTest.QwPlayerId = oData.data.id; oTest.SzAvatar = oData.data.avatar; oTest.SzNickName = oData.data.nick_name; oTest.DwSex = oData.data.sex; oTest.DwBalance = oData.data.balance; StartCoroutine(H5Helper.SendGet(oData.data.avatar, delegate(Texture2D tex) { PlayerData.Instance().SetHeadTex(tex); }) ); PlayerData.Instance().SetPlayerId(oData.data.id); PlayerData.Instance().SetName(oData.data.nick_name); PlayerData.Instance().SetHeadImage(oData.data.avatar); PlayerData.Instance().SetSex(oData.data.sex); PlayerData.Instance().SetBalance(oData.data.balance); PlayerData.Instance().SetToken(oData.token); byte[] pData = new byte[2048]; FxNet.NetStream pStream = new FxNet.NetStream(FxNet.NetStream.ENetStreamType.ENetStreamType_Write, pData, 2048); pStream.WriteString("GameProto.PlayerRequestLogin"); byte[] pProto = new byte[oTest.CalculateSize()]; Google.Protobuf.CodedOutputStream oStream = new Google.Protobuf.CodedOutputStream(pProto); oTest.WriteTo(oStream); pStream.WriteData(pProto, (uint)pProto.Length); m_pSession.Send(pData, 2048 - pStream.GetLeftLen()); if (!string.IsNullOrEmpty(oData.game_ip)) { PlayerData.Instance().SetGameIp(oData.game_ip); PlayerData.Instance().SetGamePort((ushort)oData.game_port); } }