Beispiel #1
0
    /// <summary>
    /// 创建AssetDatabaseInfo对象信息
    /// </summary>
    /// <param name="respath">资源路径</param>
    /// <returns></returns>
    private AssetDatabaseInfo createAssetDatabaseInfo(string respath)
    {
        var adi = AssetDatabaseInfoFactory.create();

        adi.AssetBundlePath            = respath;
        adi.onResourceUnloadedCallback = onResourceUnloaded;
        return(adi);
    }
Beispiel #2
0
    /// <summary>
    /// 对应资源卸载回调
    /// </summary>
    /// <param name="ari"></param>
    private static void onResourceUnloaded(AbstractResourceInfo ari)
    {
        var adi = ari as AssetDatabaseInfo;

        //资源卸载数据统计
        if (ResourceLoadAnalyse.Singleton.ResourceLoadAnalyseSwitch)
        {
            ResourceLoadAnalyse.Singleton.addResourceUnloadedTime(adi.AssetBundleName);
        }
        // 资源卸载时资源AssetDatabaseInfo回收时回收重用
        AssetDatabaseInfoFactory.recycle(adi);
    }
Beispiel #3
0
    /// <summary>
    /// 资源加载模块初始化
    /// </summary>
    public override void init()
    {
        base.init();
        ResLoadMode = ResourceLoadMode.AssetDatabase;

        mResourceRequestTaskMap            = new Dictionary <string, AssetDatabaseLoader>();
        mUnsedResourceInfoList             = new List <AbstractResourceInfo>();
        mCheckUnsedResourceTimeInterval    = 5.0f;
        mWaitForCheckUnsedResourceInterval = new WaitForSeconds(mCheckUnsedResourceTimeInterval);
        mMaxUnloadResourceNumberPerFrame   = 10;
        mResourceMinimumLifeTime           = 20.0f;
        mResourceRecycleFPSThreshold       = 20;

        AssetDatabaseLoaderFactory.initialize(20);             // 考虑到大部分都是采用同步加载,所以AssetDatabaseLoader并不需要初始化太多
        AssetDatabaseInfoFactory.initialize(200);
    }