1.如果当前类未继承MonoBehaviour,还想调用AudioSource组件的方法的话,可以使用AudioSource的静态方法调用。
1.如果当前类未继承MonoBehaviour,还想调用AudioSource组件的方法的话,可以使用AudioSource的静态方法调用。
那个-2应该在2位置,不是4位置,
offset = endId(0) - _id(-2) - 1 = 1
所以endId(3) - offset(1) = 位置(2)
changeId(endId - offset)
a/c/aa
a/c/aa/a.prefab
桥接模式:桥接和适配器都是让两个东西配合工作
using static ZenjectExample/*yourNameSpace*/.testInstaller/*yourInstaller*/;
在写属性器注入的时候 需要 using 一下,不然会报错
不需要在编辑器里面,给list设置scrollBarSkin.
在代码里面this.lstCharacter.hScrollBarSkin = "";就可以了
顶点数不等于片元数,一般片元数大于顶点数
纹理坐标(UV)
三角形遍历=扫描变换
模型空间 => 齐次裁剪空间 =>顶点色
| |
物体顶点坐标 =>长宽高为1的世界坐标空间内=>顶点色(平面2维坐标系)
减少Draw Call 的方法
1静态合批
2动态合批
3GPU instaning
1,Occlusion Culling遮挡剔除,基于摄像机(CPU处理)
2,shader信息(CPU处理)
3.可读可写的渲染数据会同时占用内存和显存?
里氏替换原则:子类完全继承父类的所有东西,既父类无private
高层模块调用低层模块解决问题
通过继承实现开闭原则。抽象出一个敌人父类,所有敌人都继承它。当新增一个敌人时,只需要继承父类,不再需要更改其他代码。
编程即抽象,谁想象力丰富,谁写的代码简洁。
迪米特法则是复用的基础,也是中介存在的理由。
gameobject上挂在的脚本:
Korgrapher
Audio Source
Simple Music Player
文本在unity中是textasset类型
d'd
获得类型:
System.Type type = typeof(T)
1.对泛型T的约束
where T class,new()
2. 栈的使用