using System; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using YooAsset; using Cysharp.Threading.Tasks; public class Boot : MonoBehaviour { ///资源包 public static ResourcePackage package; private async void Awake() { Application.targetFrameRate = 60; if (await InitYooAsset() == EOperationStatus.Succeed) { gameObject.AddComponent(); } } /// /// 初始化YooAsset /// /// public async UniTask InitYooAsset() { YooAssets.Initialize(); var package = YooAssets.CreatePackage("DefaultPackage"); YooAssets.SetDefaultPackage(package); InitializationOperation operation = null; #if UNITY_EDITOR var initParameters = new EditorSimulateModeParameters(); var simulateManifestFilePath = EditorSimulateModeHelper.SimulateBuild(EDefaultBuildPipeline.BuiltinBuildPipeline, "DefaultPackage"); initParameters.SimulateManifestFilePath = simulateManifestFilePath; operation = package.InitializeAsync(initParameters); await operation.Task; #else var initParameters = new OfflinePlayModeParameters(); operation = package.InitializeAsync(initParameters); await operation.Task; #endif return operation.Status; } /// /// 远端资源地址查询服务类 /// private class RemoteServices : IRemoteServices { private readonly string _defaultHostServer; private readonly string _fallbackHostServer; public RemoteServices(string defaultHostServer, string fallbackHostServer) { _defaultHostServer = defaultHostServer; _fallbackHostServer = fallbackHostServer; } string IRemoteServices.GetRemoteMainURL(string fileName) { return $"{_defaultHostServer}/{fileName}"; } string IRemoteServices.GetRemoteFallbackURL(string fileName) { return $"{_fallbackHostServer}/{fileName}"; } } }