From cf6043c1af3fe26142b9da8738e7a6bb4eacfe88 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 22 五月 2025 18:12:20 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_client
---
Assets/Editor/Web/NetPkgTool.cs.meta | 12 +
Assets/Editor/Web/NetPkgTool.cs | 348 +++++++++++++++++++++++++++++++++++++++++++
Assets/Editor/Web/PackageDetailsWindow.cs | 56 +++++++
Assets/Editor/Web/PackageDetailsWindow.cs.meta | 12 +
Assets/Editor/Web.meta | 8 +
5 files changed, 436 insertions(+), 0 deletions(-)
diff --git a/Assets/Editor/Web.meta b/Assets/Editor/Web.meta
new file mode 100644
index 0000000..6ac8eed
--- /dev/null
+++ b/Assets/Editor/Web.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f75979479506c0647ba85b16cae93fa6
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Editor/Web/NetPkgTool.cs b/Assets/Editor/Web/NetPkgTool.cs
new file mode 100644
index 0000000..c8c6a43
--- /dev/null
+++ b/Assets/Editor/Web/NetPkgTool.cs
@@ -0,0 +1,348 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor;
+using System;
+using System.Text.RegularExpressions;
+using System.Threading;
+
+public class NetPackageWindow : EditorWindow
+{
+ public static NetPackageWindow window = null;
+
+ [UnityEditor.MenuItem("绋嬪簭/灏佸寘鏌ョ湅宸ュ叿 &1")]
+ static void Init()
+ {
+ window = GetWindow(typeof(NetPackageWindow), false, "灏佸寘鏌ョ湅宸ュ叿") as NetPackageWindow;
+ window.Show();
+ window.autoRepaintOnSceneChange = true;
+ }
+
+ static int MAX_PACKAGE_COUNT = 200;
+
+ private Vector2 scrollPosition;
+ string stopRecBtnDetail = "鏆傚仠鎺ユ敹鍖�";
+ bool professionalSkin;
+ string filterNetPkgStr;
+
+ private string simSendPkgDetail = "";
+ NetPackagetType m_CurrentType = NetPackagetType.All;
+
+ bool reveralFilter;
+ bool showHeartPackage;
+
+ bool showMainServerPackage;
+ bool showCrossServerPackage;
+ int maxShowPackageCount;
+
+ bool threading = true;
+ List<NetPackage> m_DrawPackages = new List<NetPackage>();
+ List<NetPackage> drawPackages {
+ get { lock (this) { return m_DrawPackages; } }
+ set {
+ lock (this)
+ {
+ m_DrawPackages = value;
+ }
+ }
+ }
+
+ private void OnDisable()
+ {
+ threading = false;
+
+ LocalSave.SetBool("NetPackageSkinPattern", professionalSkin);
+ LocalSave.SetInt("NetPackageShowMaxCount", maxShowPackageCount);
+ LocalSave.SetBool("CrossServerPackage", showCrossServerPackage);
+ LocalSave.SetBool("MainServerPackage", showMainServerPackage);
+ LocalSave.SetString("NetPkgToolFilterNetPackageString", filterNetPkgStr);
+ LocalSave.SetBool("NetPkgToolFilterNetPackageReveralFilter", reveralFilter);
+ }
+
+ private void OnEnable()
+ {
+ professionalSkin = LocalSave.GetBool("NetPackageSkinPattern", false);
+ maxShowPackageCount = LocalSave.GetInt("NetPackageShowMaxCount", 100);
+ showCrossServerPackage = LocalSave.GetBool("CrossServerPackage", true);
+ showMainServerPackage = LocalSave.GetBool("MainServerPackage", true);
+ filterNetPkgStr = LocalSave.GetString("NetPkgToolFilterNetPackageString");
+ reveralFilter = LocalSave.GetBool("NetPkgToolFilterNetPackageReveralFilter", false);
+
+ var thread = new Thread(OnThreading);
+ thread.IsBackground = true;
+ thread.Start();
+ }
+
+ public void CheckPackageShowState(NetPackage package)
+ {
+ if (m_CurrentType != NetPackagetType.All && m_CurrentType != package.type)
+ {
+ package.show = false;
+ return;
+ }
+
+ if (!showMainServerPackage && package.socketType == ServerType.Main)
+ {
+ package.show = false;
+ return;
+ }
+
+ if (!showCrossServerPackage && package.socketType == ServerType.CrossSever)
+ {
+ package.show = false;
+ return;
+ }
+
+ if (!showHeartPackage && Regex.IsMatch(package.name, ".*(OnlineReturn|ServerHeart|OnlineReply).*"))
+ {
+ package.show = false;
+ return;
+ }
+
+ if (!string.IsNullOrEmpty(filterNetPkgStr))
+ {
+ var contain = false;
+
+ try
+ {
+ contain = Regex.IsMatch(package.name, StringUtility.Contact(".*(", filterNetPkgStr.Replace(" ", "|"), ").*"));
+ }
+ catch (System.Exception ex)
+ {
+ }
+
+ if (reveralFilter && contain)
+ {
+ package.show = false;
+ return;
+ }
+ else if (!reveralFilter && !contain)
+ {
+ package.show = false;
+ return;
+ }
+ }
+
+ package.show = true;
+ }
+
+ private void OnThreading()
+ {
+ while (threading)
+ {
+ var packages = NetPkgCtl.GetPackages();
+ if (packages != null)
+ {
+ var showCount = 0;
+ for (int i = packages.Count - 1; i >= 0; i--)
+ {
+ if (packages[i] == null)
+ {
+ packages.RemoveAt(i);
+ continue;
+ }
+
+ showCount++;
+ if (showCount >= maxShowPackageCount)
+ {
+ break;
+ }
+
+ CheckPackageShowState(packages[i]);
+ }
+ }
+
+ Thread.Sleep(50);
+ }
+ }
+
+ void OnGUI()
+ {
+ GUI.skin.customStyles[1].alignment = TextAnchor.UpperLeft;
+ GUI.skin.customStyles[1].fontStyle = FontStyle.Normal;
+ GUI.skin.customStyles[1].fixedWidth = 450;
+
+ GUI.skin.button.normal.textColor = professionalSkin ? Color.white : Color.black;
+
+ GUILayout.BeginVertical();
+
+ GUILayout.BeginHorizontal();
+
+ professionalSkin = !GUILayout.Toggle(!professionalSkin, "鏅�氱毊鑲�");
+ professionalSkin = GUILayout.Toggle(professionalSkin, "楂樼骇鐨偆");
+
+ GUILayout.EndHorizontal();
+
+ GUILayout.BeginHorizontal();
+ maxShowPackageCount = EditorGUILayout.IntField("鏈�澶ф樉绀哄皝鍖呮暟锛�", maxShowPackageCount);
+ showHeartPackage = GUILayout.Toggle(showHeartPackage, "蹇冭烦鍖�");
+ showMainServerPackage = GUILayout.Toggle(showMainServerPackage, "涓绘湇");
+ showCrossServerPackage = GUILayout.Toggle(showCrossServerPackage, "璺ㄦ湇");
+
+ m_CurrentType = GUILayout.Toggle(m_CurrentType == NetPackagetType.All, "鍏ㄩ儴") ? NetPackagetType.All : m_CurrentType;
+ m_CurrentType = GUILayout.Toggle(m_CurrentType == NetPackagetType.Server, "鏀跺寘") ? NetPackagetType.Server : m_CurrentType;
+ m_CurrentType = GUILayout.Toggle(m_CurrentType == NetPackagetType.Client, "鍙戝寘") ? NetPackagetType.Client : m_CurrentType;
+
+ GUILayout.EndHorizontal();
+
+ GUILayout.BeginHorizontal();
+
+ filterNetPkgStr = EditorGUILayout.TextField("鍏抽敭瀛�", filterNetPkgStr);
+ reveralFilter = GUILayout.Toggle(reveralFilter, "鍙嶅悜杩囨护");
+
+ GUILayout.EndHorizontal();
+
+ SimSendPkg();
+ scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, false);
+
+ var packages = NetPkgCtl.GetPackages();
+ if (packages != null)
+ {
+ var count = 0;
+ for (int i = packages.Count - 1; i >= 0; i--)
+ {
+ var package = packages[i];
+ if (package != null)
+ {
+ count++;
+ }
+
+ if (count >= maxShowPackageCount)
+ {
+ break;
+ }
+
+ if (package.show)
+ {
+ try
+ {
+ EditorGUILayout.BeginHorizontal();
+
+ if (professionalSkin)
+ {
+ GUI.skin.button.normal.textColor = package.type == NetPackagetType.Client ? Color.yellow : Color.white;
+ }
+ else
+ {
+ GUI.skin.button.normal.textColor = package.type == NetPackagetType.Client ? Color.blue : Color.black;
+ }
+
+ if (GUILayout.Button(package.type == NetPackagetType.Client ? "CS" : "SC", GUILayout.Width(30)))
+ {
+ PackageDetailsWindow.packageTime = package.time;
+ PackageDetailsWindow.packageName = package.name;
+ PackageDetailsWindow.packageBytes = package.content;
+ PackageDetailsWindow.packageDetails = package.fieldDetails;
+ }
+
+ GUI.skin.button.normal.textColor = professionalSkin ? Color.white : Color.black;
+ var showName = StringUtility.Contact(package.time, " ", package.name);
+ EditorGUILayout.LabelField(showName, GUILayout.Width(260));
+ EditorGUILayout.TextField(package.fields);
+
+ EditorGUILayout.EndHorizontal();
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+
+ }
+ }
+
+ GUILayout.EndScrollView();
+
+ GUILayout.BeginHorizontal();
+ if (GUILayout.Button(stopRecBtnDetail))
+ {
+ NetPkgCtl.stopRecieve = !NetPkgCtl.stopRecieve;
+ if (NetPkgCtl.stopRecieve)
+ {
+ stopRecBtnDetail = "寮�濮嬫帴鏀跺寘";
+ }
+ else
+ {
+ List<NetPackage> tempNetPkgLst = NetPkgCtl.GetTempPackages();
+ if (packages != null)
+ {
+ packages.AddRange(tempNetPkgLst);
+
+ while (packages.Count > MAX_PACKAGE_COUNT)
+ {
+ packages.RemoveAt(0);
+ }
+ }
+
+ tempNetPkgLst.Clear();
+ stopRecBtnDetail = "鏆傚仠鎺ユ敹鍖�";
+ }
+ }
+
+ if (GUILayout.Button("鎵撳嵃鎽樿"))
+ {
+ NetPkgCtl.WriteAllNetLog(false);
+ }
+
+ if (GUILayout.Button("鎵撳嵃璇︽儏"))
+ {
+ NetPkgCtl.WriteAllNetLog(true);
+ }
+
+ if (GUILayout.Button("娓呴櫎"))
+ {
+ if (NetPkgCtl.GetPackages() != null)
+ {
+ NetPkgCtl.GetPackages().Clear();
+ }
+ }
+
+ GUILayout.EndHorizontal();
+ GUILayout.EndVertical();
+ }
+
+ private void SimSendPkg()
+ {
+ GUILayout.BeginHorizontal();
+ simSendPkgDetail = EditorGUILayout.TextField("妯℃嫙鍙戝寘鍐呭锛�", simSendPkgDetail);
+ if (GUILayout.Button("妯℃嫙鍙戝寘"))
+ {
+ string sendPkgDetail = simSendPkgDetail.Replace(" ", "");
+ if (sendPkgDetail.Length % 2 != 0)
+ {
+ sendPkgDetail += " ";
+ }
+ byte[] sendBytes = new byte[sendPkgDetail.Length / 2];
+ for (int i = 0; i < sendBytes.Length; i++)
+ {
+ sendBytes[i] = Convert.ToByte(sendPkgDetail.Substring(i * 2, 2), 16);
+ }
+ GameNetSystem.Instance.SendInfo(sendBytes);
+ }
+ GUILayout.EndHorizontal();
+ }
+
+ private string NetPkgTypeString()
+ {
+ switch (m_CurrentType)
+ {
+ case NetPackagetType.All:
+ return "鍏ㄩ儴";
+ case NetPackagetType.Server:
+ return "鏀跺寘";
+ case NetPackagetType.Client:
+ return "鍙戝寘";
+ default:
+ return "鍏ㄩ儴";
+ }
+ }
+}
+
+public enum FilterType
+{
+ Filter = 0,
+ ReverFilter = 1,
+}
+
+
+
diff --git a/Assets/Editor/Web/NetPkgTool.cs.meta b/Assets/Editor/Web/NetPkgTool.cs.meta
new file mode 100644
index 0000000..e182585
--- /dev/null
+++ b/Assets/Editor/Web/NetPkgTool.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 1b3b3e900e100ed4baeb02ae01b1a257
+timeCreated: 1504662436
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Editor/Web/PackageDetailsWindow.cs b/Assets/Editor/Web/PackageDetailsWindow.cs
new file mode 100644
index 0000000..08b436b
--- /dev/null
+++ b/Assets/Editor/Web/PackageDetailsWindow.cs
@@ -0,0 +1,56 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor;
+
+public class PackageDetailsWindow : ScriptableWizard
+{
+
+ static PackageDetailsWindow window;
+ public static string packageTime;
+ public static string packageName;
+ public static string packageBytes;
+ public static List<string> packageDetails;
+
+ private Vector2 scrollPosition;
+
+ private void OnGUI()
+ {
+ EditorGUILayout.BeginVertical();
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("鍚嶇О锛�", !string.IsNullOrEmpty(packageName) ? packageName : "");
+ EditorGUILayout.Space();
+
+ EditorGUILayout.LabelField("鏃堕棿锛�"+ packageTime);
+ EditorGUILayout.Space();
+
+ EditorGUILayout.LabelField("瀛楄妭娴侊細");
+ EditorGUILayout.TextArea(string.IsNullOrEmpty(packageBytes) ? "" : packageBytes);
+ EditorGUILayout.Space();
+
+ EditorGUILayout.LabelField("瀛楁璇︽儏锛�");
+ scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, true);
+
+ if (packageDetails != null)
+ {
+ for (int i = 0; i < packageDetails.Count; i++)
+ {
+ EditorGUILayout.TextField(packageDetails[i]);
+ }
+ }
+
+ GUILayout.EndScrollView();
+
+ EditorGUILayout.EndVertical();
+ }
+
+ [UnityEditor.MenuItem("绋嬪簭/灏佸寘璇︽儏 &2")]
+ public static void CreatePackageDetailsWindow()
+ {
+ window = GetWindow(typeof(PackageDetailsWindow), false, "灏佸寘璇︽儏") as PackageDetailsWindow;
+ window.Show();
+ window.autoRepaintOnSceneChange = true;
+ }
+}
+
+
diff --git a/Assets/Editor/Web/PackageDetailsWindow.cs.meta b/Assets/Editor/Web/PackageDetailsWindow.cs.meta
new file mode 100644
index 0000000..305ae2d
--- /dev/null
+++ b/Assets/Editor/Web/PackageDetailsWindow.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: d61985cb201a8a54cb3bec03baaffd3f
+timeCreated: 1509514067
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
--
Gitblit v1.8.0