diff --git a/Assets/Scripts/Editor/VirtualFPostProcess.cs b/Assets/Scripts/Editor/VirtualFPostProcess.cs
index 37b625a1..a687e3f0 100644
--- a/Assets/Scripts/Editor/VirtualFPostProcess.cs
+++ b/Assets/Scripts/Editor/VirtualFPostProcess.cs
@@ -1,6 +1,8 @@
+using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
+using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
using UnityEngine;
@@ -26,6 +28,72 @@ public class VirtualFPostProcess : IPostprocessBuildWithReport
{
Debug.LogWarning("未找到数据目录: " + dataFolderPath);
}
+ DeletAssetBundle(buildOutputPath);
+ }
+
+ ///
+ /// 删除不属于当前平台的资源
+ ///
+ public void DeletAssetBundle(string buildOutPutPath)
+ {
+ if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.WebGL)
+ {
+ string path = Path.Combine(buildOutPutPath, "StreamingAssets", "AssetBundles");
+ if (Directory.Exists(path))
+ {
+ string[] allDirectories = Directory.GetDirectories(path);
+ foreach (string dir in allDirectories)
+ {
+ string dirName = Path.GetFileName(dir);
+ if (!dirName.Equals("WebGL", StringComparison.OrdinalIgnoreCase)) // 忽略大小写
+ {
+ try
+ {
+ Directory.Delete(dir, true);
+ Debug.Log($"Deleted directory: {dir}");
+ }
+ catch (Exception e)
+ {
+ Debug.LogError($"Failed to delete {dir}: {e.Message}");
+ }
+ }
+ }
+ }
+ else
+ {
+ Debug.LogError($"Directory not found: {path}");
+ }
+ }
+ else if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneWindows|| EditorUserBuildSettings.activeBuildTarget == BuildTarget.StandaloneWindows64)
+ {
+ string path = Path.Combine(buildOutPutPath, "VirtualFramwork_Data", "StreamingAssets", "AssetBundles");
+ if (Directory.Exists(path))
+ {
+ string[] allDirectories = Directory.GetDirectories(path);
+ foreach (string dir in allDirectories)
+ {
+ string dirName = Path.GetFileName(dir);
+ if (!dirName.Equals("Windows", StringComparison.OrdinalIgnoreCase)) // 忽略大小写
+ {
+ try
+ {
+ Directory.Delete(dir, true);
+ Debug.Log($"Deleted directory: {dir}");
+ }
+ catch (Exception e)
+ {
+ Debug.LogError($"Failed to delete {dir}: {e.Message}");
+ }
+ }
+ }
+ }
+ else
+ {
+ Debug.LogError($"Directory not found: {path}");
+ }
+ }
+
+
}
private string GetValidBuildPath(BuildReport report)
diff --git a/Assets/Scripts/Global/Global.cs b/Assets/Scripts/Global/Global.cs
index fe5f2b56..808c8902 100644
--- a/Assets/Scripts/Global/Global.cs
+++ b/Assets/Scripts/Global/Global.cs
@@ -13,8 +13,11 @@ public class Global : Singleton
public XMLTool.AppData appData;
public Module curModule;
public Body3D.Body cur3DPart;
-
+#if UNITY_WEBGL
+ public static string dataPath = Application.dataPath + "/Data";
+#else
public static string dataPath = Application.dataPath + "/../Data";
+#endif
public static string deviceIconsPath = dataPath + "/DeviceIcons/";
public static string audioPath = dataPath + "/Audio/";
public static string appXmlPath = dataPath + "/App.xml";