AssetBundle框架主流程之SingleABLoader

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SingleABLoader : System.IDisposable
{
    private AssetLoader _AssetLoader;

    private string _ABName;

    private string _ABLoadPath;
    public SingleABLoader(string abName)
    {
        _ABName = abName;
        _ABLoadPath = PathTools.GetABPath() + "/" + _ABName;//
        Debug.Log("_ABLoadPath=" + _ABLoadPath);
    }


    /// <summary>
    /// 加载AB包
    /// </summary>
    public void LoadAssetBundle()
    {
        _AssetLoader = new AssetLoader(AssetBundle.LoadFromFile(_ABLoadPath));
    }

    /// <summary>
    /// 加载ab包中指定的资源
    /// </summary>
    /// <param name="asstName"></param>
    /// <param name="isCache"></param>
    /// <returns></returns>
    public UnityEngine.Object LoadAsset(string assetName, bool isCache = false)
    {
        if (_AssetLoader != null)
        {
            return _AssetLoader.LoadAsset(assetName, isCache);
        }
        Debug.LogError(GetType() + "/LoadAsset()/参数_AssetLoader = null!,请检查");
        return null;
    }


    /// <summary>
    /// 卸载指定资源
    /// /// </summary>
    /// <param name="asset">资源名称</param>
    /// <returns></returns>
    public void UnLoadAsset(UnityEngine.Object asset)
    {
        _AssetLoader.UnLoadAsset(asset);
    }

    /// <summary>
    ///  //释放资源
    /// </summary>
    void IDisposable.Dispose()
    {
        if (_AssetLoader != null)
        {
            _AssetLoader.Dispose();
            _AssetLoader = null;
        }
        else
        {
            Debug.LogError(GetType() + "/UnLoadAsset()/参数 _AssetLoader== null 请检查");
        }
    }


    /// <summary>
    /// //释放当前AssetBundle资源包  ,且卸载所有资源
    /// </summary>
    public void DisposeAll()
    {
        if (_AssetLoader != null)
        {
            _AssetLoader.DisposeAll();
            _AssetLoader = null;
        }
        else
        {
            Debug.LogError(GetType() + "/UnLoadAsset()/参数 _AssetLoader== null 请检查");
        }
    }

    /// <summary>
    /// 查询当前AssetBundle中包含的所有资源名称
    /// </summary>
    /// <returns></returns>
    public string[] RetriveAllAssetName()
    {
        if (_AssetLoader != null)
        {
            return _AssetLoader.RetriveAllAssetName();
        }
        else
        {
            Debug.LogError(GetType() + "/UnLoadAsset()/参数 _AssetLoader== null 请检查");
            return null;
        }

    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值