Files
YooAsset/Assets/YooAsset/Runtime/BundleHandle/Services/VirtualRawBundleHandle/VirtualRawBundleHandle.cs
2026-05-15 18:37:01 +08:00

58 lines
1.8 KiB
C#

using UnityEngine.SceneManagement;
namespace YooAsset
{
internal sealed class VirtualRawBundleHandle : IBundleHandle
{
private readonly PackageBundle _packageBundle;
private readonly RawBundle _rawBundle;
/// <summary>
/// 创建 VirtualRawBundleHandle 实例
/// </summary>
/// <param name="packageBundle">资源包描述</param>
/// <param name="rawBundle">已加载的原生资源包数据对象</param>
public VirtualRawBundleHandle(PackageBundle packageBundle, RawBundle rawBundle)
{
_packageBundle = packageBundle;
_rawBundle = rawBundle;
}
/// <inheritdoc/>
public void UnloadBundle()
{
if (_rawBundle != null)
{
_rawBundle.Unload();
}
}
/// <inheritdoc/>
public BHLoadAssetOperation LoadAssetAsync(AssetInfo assetInfo)
{
var operation = new RBHLoadAssetOperation(_packageBundle, _rawBundle, assetInfo);
return operation;
}
/// <inheritdoc/>
public BHLoadAllAssetsOperation LoadAllAssetsAsync(AssetInfo assetInfo)
{
var operation = new RBHLoadAllAssetsOperation();
return operation;
}
/// <inheritdoc/>
public BHLoadSubAssetsOperation LoadSubAssetsAsync(AssetInfo assetInfo)
{
var operation = new RBHLoadSubAssetsOperation();
return operation;
}
/// <inheritdoc/>
public BHLoadSceneOperation LoadSceneAsync(AssetInfo assetInfo, LoadSceneParameters loadSceneParams, bool allowSceneActivation)
{
var operation = new RBHLoadSceneOperation();
return operation;
}
}
}