首先写一个类包含ab和ab对应的引用以及对应的卸载方法,在写一个ab的管理类,包括全局ab的加载,卸载,以及相关根据引用数来判断是重内存中是否删除对应的依赖资源,是新建资源还是重内存中获取资源重而达到在ab适度颗粒话下的内存优化!
脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class AssetBundleInfos
{
public AssetBundle assetBundle;
public int referencedCount;//引用数
internal event Action unload;
internal void OnUnload()
{
assetBundle.Unload(false);
if (unload != null)
unload();
}
}
public class Resource_LoadManager
{
AssetBundleManifest assetBundleManifest = null;
Dictionary<string, string[]> dependencies = new Dictionary<string, string[]>();
Dictionary<string, AssetBundleInfos> loadeAssetBundle = new Dictionary<string, AssetBundleInfos>();
// Use this for initialization
public Resource_LoadManager()
{
//Initalize();
}
//初始化加载所有的依赖项目
public void Initalize()

本文介绍了如何利用Unity的AssetBundle进行资源管理,通过创建包含引用计数的类,配合管理类来控制AssetBundle的加载、卸载。根据引用数判断资源是否从内存中删除,实现内存优化,确保在保持AssetBundle适当粒度的同时有效管理内存。
最低0.47元/天 解锁文章
&spm=1001.2101.3001.5002&articleId=103199797&d=1&t=3&u=340c1b4c52d64b78b7dcd513d953ce57)
8万+

被折叠的 条评论
为什么被折叠?



