BITKit/Src/Unity/Scripts/Assets/YooAssetUtils.cs

49 lines
1.5 KiB
C#
Raw Normal View History

2024-03-31 23:31:00 +08:00
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<string> OnPackageRegistered;
public static event Action<string> OnPackageUnregistered;
public static IEnumerable<string> RegisteredPackages => _registeredPackages.ToArray();
public static IEnumerable<ResourcePackage> RegisteredResourcePackages => _registeredResourcePackages.ToArray();
private static readonly List<ResourcePackage> _registeredResourcePackages = new();
private static readonly List<string> _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);
}
}