49 lines
1.5 KiB
C#
49 lines
1.5 KiB
C#
|
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);
|
||
|
}
|
||
|
|
||
|
}
|