资源加载方式:
①直接拖到组件上
②Resources.Load()
③AssesBundle
④AssetDataBase.LoadAt
资源加载方式:
①直接拖到组件上
②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 的效率高
a/c/aa
a/c/aa/a.prefab
获得类型:
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;
}
如果放在下面, 就找不到它的引用了
020-AB包
SendMessage方法xie de h
在打包前,删除所有的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:表示设置属性。
资源池清空用于跳场景时,用于清空跳转场景需要删除的资源
预加载的资源跳场景时肯定不用清除