using System; using System.Collections.Generic; using System.IO; using ThirdParty.DownloadSystem; using UnityEngine; namespace ThirdParty { /// /// 和热更包里面同步的类容 /// public class HotSyncContent { /// /// 资源服地址 /// public static string AssetURL = "http://129.204.254.216:8080/resource/010test"; public static string Currversion; public static bool isOpenHotFix; public static bool isOpenDllStreamingLoad; public static int assetsVer; private static string m_rootStreamingURL; public static string RootStreamingURL { get { m_rootStreamingURL = Application.streamingAssetsPath; #if UNITY_EDITOR #elif UNITY_IPHONE m_rootStreamingURL = "file://" + m_rootStreamingURL; #endif return m_rootStreamingURL; } } // #if UNITY_EDITOR // public static string platform = "Android"; // // public static string platform = "PC"; // #elif UNITY_IOS /// /// 1= 本地模式 /// public static int loadType; #if UNITY_IOS public static string platform = "iOS"; #elif UNITY_ANDROID public static string platform = "Android"; #else public static string platform = "Android"; #endif public static IDownloadUI DownloadUI; /// ///应用程序外部资源路径存放路径(热更新资源路径) /// public static string AppHotfixResPath { get { if (!Directory.Exists($"{Application.persistentDataPath}/Dll/")) { Debug.Log("创建目录:" + $"{Application.persistentDataPath}/Dll/"); Directory.CreateDirectory($"{Application.persistentDataPath}/Dll/"); } return $"{Application.persistentDataPath}/Dll/"; } } /// /// 先从热更路径读取(表示已经热更过),在从内部路径读取(Application.streamingAssetsPath不能用File.Exists判断,无效) /// /// /// public static string GetResPath(string resourceName) { string p = Path.Combine(AppHotfixResPath, resourceName); if (!File.Exists(p)) { p = Path.Combine(Application.streamingAssetsPath, resourceName); } return p; } public static string GetWebRequestPath(string resourceName) { string p = GetResPath(resourceName); // webRequest要加file:// if (!p.Contains("://")) { p = "file://" + p; } return p; } public static string GetDllWebRequestPath(string resourceName) { string p = Path.Combine(AppHotfixResPath, resourceName); if (!File.Exists(p)) { p = Path.Combine(RootStreamingURL + "/Dll/", resourceName); } #if !UNITY_EDITOR // webRequest要加file:// if (!p.Contains("://")) { p = "file://" + p; } #endif return p; } /// /// 需要热更的的dll资源 /// public static List HotFixDll { get; } = new List() { "init", //这个是进入热更场景的入口 "Fort23.Proto.dll", "Fort23.Core.dll", "Fort23.GameData.dll", "Fort23.CombatCore.dll", "Fort23.UTool.dll", "Fort23.Combat.dll", "Fort23.Mono.dll", "spine-unity.dll", "spine-timeline.dll", "Assembly-CSharp.dll", }; /// /// 需要补充元数据的泛型函数实例化的dll(注意,不要把热更dll放在这里了。) /// public static List AOTMetaAssemblyNames { get; } = new List() { "mscorlib.dll", "System.dll", "System.Core.dll", "spine-csharp.dll", "Newtonsoft.Json.dll", "Unity.Timeline.dll", "UnityEngine.CoreModule.dll", "ThirdParty.dll" }; } // [Serializable] // public class AssetMD5Info // { // public List fileInfo; // } // // [Serializable] // public class MD5FileInfo // { // public string fileName; // public string md5; // // public long size; // // // TODO 暂时不验证 // public string md5Verification; // } }