diff --git a/Assets/Art_SubModule b/Assets/Art_SubModule
index 10480ba..e78462c 160000
--- a/Assets/Art_SubModule
+++ b/Assets/Art_SubModule
@@ -1 +1 @@
-Subproject commit 10480ba573cacd75c1496737614d2d0d26147533
+Subproject commit e78462ce1c95bb74a5ee52ea505cd57a73138369
diff --git a/Assets/Editor/CustomTools.meta b/Assets/Editor/CustomTools.meta
new file mode 100644
index 0000000..71340b6
--- /dev/null
+++ b/Assets/Editor/CustomTools.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 06b84cf237692794f9d12d97e15f4e8e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Editor/CustomTools/BytesViewer.meta b/Assets/Editor/CustomTools/BytesViewer.meta
new file mode 100644
index 0000000..5ec3a62
--- /dev/null
+++ b/Assets/Editor/CustomTools/BytesViewer.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6e1a602a557cd7a48ab28f8852a81a48
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Editor/CustomTools/BytesViewer/BytesViewerWindow.cs b/Assets/Editor/CustomTools/BytesViewer/BytesViewerWindow.cs
new file mode 100644
index 0000000..868011e
--- /dev/null
+++ b/Assets/Editor/CustomTools/BytesViewer/BytesViewerWindow.cs
@@ -0,0 +1,1058 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using Thrift;
+using Thrift.Protocol;
+using Thrift.Transport;
+using Thrift.Transport.Client;
+using UnityEditor;
+using UnityEngine;
+
+namespace BytesViewerTool
+{
+ ///
+ /// Bytes文件查看器 - 将Thrift bytes数据以表格形式展示
+ ///
+ public class BytesViewerWindow : EditorWindow
+ {
+ private TextAsset selectedBytesFile;
+ private string currentFilePath = "";
+ private object parsedData;
+ private Vector2 scrollPosition;
+ private bool dataLoaded = false;
+ private string errorMessage = "";
+
+ // 表格显示相关
+ private List columnNames = new List();
+ private List