5313人加入学习
(36人评价)
Unity商业游戏底层资源加载框架(Unity2018.1)

更新完成,更新时间2018-12-26

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

资源加载方式:

①直接拖到组件上

②Resources.Load()

③AssesBundle

④AssetDataBase.LoadAt 

[展开全文]

移动节点至头部,不需要在最后判断Tail是否为空.

if (pNode == Tail) Tail = pNode.prev;这一句已经判断过了.

[展开全文]

/// <summary>
    /// 把某个节点移到头部
    /// </summary>
    /// <param name="pNode"></param>
    public void MoveToHead(DoubleLinkedListNode<T> pNode)
    {
        if (pNode == null || pNode == Head)
            return;

        if (pNode.prev == null && pNode.next == null)
            return;

        if (pNode == Tail)
            Tail = pNode.prev;

        if(pNode.prev != null)
            pNode.prev.next = pNode.next;

        if (pNode.next != null)
            pNode.next.prev = pNode.prev;

        pNode.prev = null;
        pNode.next = Head;
        Head.prev = pNode;
        Head = pNode;

        //这里不对
        if (Tail == null)
            Tail = Head;
    }

 

//最后一句代码有误吧,想不出例子可以证明(Tail == null)

[展开全文]

1.string.IsNullOrEmpty的效率比string==null 的效率高

[展开全文]

获得类型:

System.Type type = typeof(T)

[展开全文]

1.对泛型T的约束

where T class,new()

 

2. 栈的使用

[展开全文]

1. 单例基类的设计,

对泛型T的约束

where T:new()

[展开全文]

1. 通过代码生成AB包配置表,表中记录着所有资源所在的包名以及与其它包体的依赖关系。

2. 然后优化配置表:把一些永远不可能去动态加载的资源从配置表中移除,只记录可能会动态加载的东西。

 

3.通过一个List来过滤。

[展开全文]

打包时剔除冗余

删除无用的包名(改名或者没有使用)

[展开全文]

设置AB包 --> 打包 -->清除AB包设置

[展开全文]

1.编辑器扩展时,要使用[MneuItem("...")]添加到工具栏中的前提是,必须写的是一个静态方法。

2.API打包:

buildPipeline.buildAssetBundels(...,..,.EditorUserBuildSettings) 

[展开全文]

就近原则

程序集之间的引用关系

[展开全文]

拖拽指定的方式 和 resource.load的方式都不是推荐的资源加载方式,只有小规模项目时可以使用。

大项目推荐用 、assetBundel加载方式

[展开全文]

 Resources.UnloadAsset(item.m_obj); 应该在这样

 

       if (item.m_obj != null)
        {
#if  UNITY_EDITOR 
            Resources.UnloadAsset(item.m_obj);
#endif
            item.m_obj = null;
        }

如果放在下面, 就找不到它的引用了

[展开全文]

在打包前,删除所有的ab包ji ke

[展开全文]

查找方法时,默认只能查到public方法。如果想要查找private方法,需要设定BindingFlags.

即:

BindingFlags.Public|BindingFlags.Instance 默认查找public、instance内容

BindingFlags.NonPublic|BindingFlags.Instance 查找nonpublic、instance内容

另外,BindingFlags.Instance和BindingFlags.Static二者必须有一项或者都有。如果你的类是instance,就选instance,反之选static。如果两者都不选,是找不到任何方法的

BindingFlags枚举值:

BindingFlags.IgnoreCase:表示忽略 name 的大小写,不应考虑成员名的大小写

BindingFlags.DeclaredOnly:只应考虑在所提供类型的层次结构级别上声明的成员。不考虑继承成员。

BindingFlags.Instance:只搜索实例成员

BindingFlags.Static:只搜索静态成员

BindingFlags.Public:只搜索公共成员

BindingFlags.NonPublic:只搜索非公共成员

BindingFlags.FlattenHierarchy:应返回层次结构上的公共静态成员和受保护的静态成员。不返回继承类中的私有静态成员。静态成员包括字段、方法、事件和属性。不返回嵌套类型。

BindingFlags.InvokeMethod:表示调用方法,而不调用构造函数或类型初始值设定项。对 SetField 或 SetProperty 无效。

BindingFlags.CreateInstance:表示调用构造函数。忽略 name。对其他调用标志无效。

BindingFlags.GetField:表示获取字段值。

BindingFlags.SetField:表示设置字段值。

BindingFlags.GetProperty:表示获取属性。

BindingFlags.SetProperty:表示设置属性。

[展开全文]

资源池清空用于跳场景时,用于清空跳转场景需要删除的资源  

预加载的资源跳场景时肯定不用清除

 

[展开全文]

授课教师

课程特色

下载资料(4)
视频(205)