using UnityEngine; using YooAsset; namespace Stary.Evo { public class YooAssetFileSystem { public static InitializeParameters OfflineInitializeParameter() { var buildinFileSystemParams = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(); // ICopyLocalFileServices copyLocalFileServices = new CopyLocalFileServices(); // buildinFileSystemParams.AddParameter(FileSystemParametersDefine.COPY_LOCAL_FILE_SERVICES, copyLocalFileServices); var initParameters = new OfflinePlayModeParameters(); initParameters.BuildinFileSystemParameters = buildinFileSystemParams; return initParameters; } public static InitializeParameters HostInitializeParameter(string packageName) { var initParameters = new OfflinePlayModeParameters(); var buildinFileSystemParams = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(null, $"{Application.temporaryCachePath}/DownloadedContent/{packageName}"); Debug.Log( $"UnityEvo:Host InitializeParameterPath: 【{Application.temporaryCachePath}/DownloadedContent/{packageName}】"); buildinFileSystemParams.AddParameter(FileSystemParametersDefine.APPEND_FILE_EXTENSION, true); buildinFileSystemParams.AddParameter(FileSystemParametersDefine.COPY_BUILDIN_PACKAGE_MANIFEST, true); initParameters.BuildinFileSystemParameters = buildinFileSystemParams; return initParameters; } public static InitializeParameters WebInitializeParameter(string packageName, string defaultHostServer, string fallbackHostServer) { IRemoteServices remoteServices = new RemoteServices(defaultHostServer, fallbackHostServer); //var webServerFileSystemParams = FileSystemParameters.CreateDefaultWebServerFileSystemParameters(); #if UNITY_WEBGL&&WEB_PLAYMODE var webRemoteFileSystemParams = FileSystemParameters.CreateDefaultWebRemoteFileSystemParameters(remoteServices); //支持跨域下载 #elif UNITY_WEBGL && WEIXINMINIGAME string packageRoot = $"{WeChatWASM.WX.env.USER_DATA_PATH}/__GAME_FILE_CACHE"; var webRemoteFileSystemParams = WechatFileSystemCreater.CreateFileSystemParameters(packageRoot, remoteServices); #endif var initParameters = new WebPlayModeParameters(); #if UNITY_WEBGL //initParameters.WebServerFileSystemParameters = webRemoteFileSystemParams; initParameters.WebRemoteFileSystemParameters = webRemoteFileSystemParams; #endif return initParameters; } public static InitializeParameters EditorSimulateInitializeParameter(string packageName) { var buildResult = EditorSimulateModeHelper.SimulateBuild(packageName); var packageRoot = buildResult.PackageRootDirectory; var editorFileSystemParameters = FileSystemParameters.CreateDefaultEditorFileSystemParameters(packageRoot); // editorFileSystemParameters.AddParameter(FileSystemParametersDefine.VIRTUAL_DOWNLOAD_MODE, true); // int speed = 1024 * 1024; //单位:字节 // editorFileSystemParameters.AddParameter(FileSystemParametersDefine.VIRTUAL_DOWNLOAD_SPEED, speed); var initParams = new EditorSimulateModeParameters(); initParams.EditorFileSystemParameters = editorFileSystemParameters; return initParams; } } }