3192人加入学习
(11人评价)
Unity 游戏框架搭建 2019 第二季 模块/系统设计、命名、测试(资源管理/热更新)

使用 Unity 2017.3, 制作于 2018 年 1 月 30 日

价格 ¥ 220.00
该课程属于 Unity - A计划(一年有效期) 请加入后再学习

Resloader 中的创建改为工厂模式

[展开全文]

上一课说了:导出

这节课:加载

[展开全文]

核心API:\

BuildPipeline.BuildAssetBundles

AssetBundle.LoadFromFile

AssetBundle.LoadAsset<T>

[展开全文]

Async存在的问题,每次调用Async方法对应都会进行加载操作,造成多次加载

 

先创建一个Event 回调事件mOnloadedEvent

注册:

RegisterOnLoadedEvent

移除:

UnRegisterOnLoadedEvent

 

State 修改:

如果加载过了 事件不为空那么执行这个事件

 

{

    get{return mState;}

    protected set{

          mState=value;

         if(mState==ResState.Loaded)

          {
              if(mLoadedEvetnt!=null)mLoadedEvent.Invoke(this);
           }

     }

}

 

LoadAsync的更改取消委托函数

 

[展开全文]

先完成同步加载处理

 

重复加载错误:

1 编辑器中加载没有卸载

2 要重新打包一下

[展开全文]

GetAllAssetBundles()活得所有的AB名字

GetAllDependencis(bundleName) 获取依赖的名字

GetDirectDependencies(bundleName) 获取直接依赖名字

[展开全文]

路由设计模式

    路由就是URL到函数的映射

[展开全文]

Url解析

根据不同的res生成不同的res对象

StartsWith("resources://")

[展开全文]

AB使用的四步

1 标记

2 Build 

3 加载AB

4 从AB中加载

 

Build

UnityEditor.BuildPipeline.BuildAssetBundles()

第一个参数 输出路径

第二个参数 

第三个参数:平台

[展开全文]

AB的使用

加载AB:AssetBundle.LoadFromFile

AB中加载:AssetBundle.LoadAsset<T>(name)

[展开全文]

没有提供卸载prefab的功能

[展开全文]

resload 加载

res 卸载

resmgr 记录

 

[展开全文]

单一职责:

Resload:之应该负责资源加载

resmgr:负责记录

[展开全文]

设计利器,res引用计数器:把服务类封装起来

 

服务类:是享元模式

[展开全文]

9

代码复用方式:

    继承,静态方法/类,服务类

[展开全文]

加载资源使用了Find判断是否存在,在之后会优化TODO

[展开全文]

Resources.UnloadUnusedAssets只能写在没有引用用的资源

Resources.UnloadUnusedAssets

[展开全文]

引用记录操作解决多个资源共用卸载资源共用问题

引用一次加1 

[展开全文]

授课教师

QFramework、鬼山之下/第一座山

课程特色

下载资料(1)
视频(132)

学员动态

wtybill 加入学习
AEIS666 加入学习
RuoBing 加入学习
ben.he 加入学习
浅笑丿 加入学习