using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using YooAsset; namespace BITKit.IO { public class YooAssetUtils { [RuntimeInitializeOnLoadMethod] private static void Reload() { OnPackageRegistered = null; OnPackageUnregistered = null; _registeredPackages.Clear(); _registeredResourcePackages.Clear(); } public static event Action OnPackageRegistered; public static event Action OnPackageUnregistered; public static IEnumerable RegisteredPackages => _registeredPackages.ToArray(); public static IEnumerable RegisteredResourcePackages => _registeredResourcePackages.ToArray(); private static readonly List _registeredResourcePackages = new(); private static readonly List _registeredPackages = new(); public static void RegisterPackage(string packageName) { if (_registeredPackages.Contains(packageName)) { return; } _registeredPackages.Add(packageName); OnPackageRegistered?.Invoke(packageName); } public static void UnregisterPackage(string packageName) { if (!_registeredPackages.Contains(packageName)) { return; } _registeredPackages.Remove(packageName); OnPackageUnregistered?.Invoke(packageName); } public static void RegisterResourcePackage(ResourcePackage package)=>_registeredResourcePackages.Add(package); public static void UnregisterResourcePackage(ResourcePackage package)=>_registeredResourcePackages.Remove(package); } }