From a49daf71cf967bc107fd2ba3e2a1a4918840af13 Mon Sep 17 00:00:00 2001 From: shenjianxing <”315615051@qq.com“> Date: Fri, 28 Mar 2025 09:37:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=89=93=E5=8C=85=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=88=A0=E9=99=A4=E9=9D=9E=E5=BD=93=E5=89=8D=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E7=9A=84=E8=B5=84=E6=BA=90=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Editor/VirtualFPostProcess.cs | 68 ++++++++++++++++++++ Assets/Scripts/Global/Global.cs | 5 +- 2 files changed, 72 insertions(+), 1 deletion(-) 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";