re
re
合批规则
1.遍历ui
2.根据深度值,材质id,图片id,rendersort依次进行一个深度处理
3.list中所有深度值为-1的都要剔除掉
4.相邻的元素是否能进行合批
首先根据材质排序
判断图片id排序
面板顺序排序
depth(深度)优先级最高
不渲染的深度值为-1
深度越小越先渲染
当前得ui元素会判断底下得ui元素是否能够合批
如果不能合批得话,那么我当前得ui元素得深度值是底下ui元素深度值+1
合批
把能够合并mesh得这部分合并到一起
判断合批 :
1.图片是否一样的
2.材质是否一样的
在推导
直接LookAt目标位置的x,y坐标和塔的z坐标就行,保证LookAt在塔的同一平面上就不会旋转了
从这里开始有点迷惑,必要的话返回重新听
select 可以做投影操作,或M(x)
操作,完成一个从选出的对象到另一个对象的映射
ReactiveX是什么?
设X是一个类型,
我们可以观察一个类型的实例x,
设该实例随时间变化的状态为x1,x2,...xn,
则构成一个序列:
x1,x2,...,xn
定义为一个流,
名为ReactiveX
如此,观察x的变化,
就转化为对流ReactiveX进行操作。
x--observe->ReactiveX
Subscirbe 订阅一个流
First 得到x1
...
同理,一个系统,或其某一部分的状态,
可以定义为X,
则我们可以通过ReactiveX观察系统或
其某一部分的状态变化,
流可以声明,
流是对系统状态变化所做响应的声明,
这就是声明式编程,相对的概念是过程式编程。
在声明式编程中,变量被看成一个流,在过程式编程中,变量被看成是一个在任何给定时刻的一个特定状态。因为状态是变化的,所以你的代码就得造成变化,判断变化,操作变化。
在声明式编程中,变量被看成一个流,好吧,当时间变化时,它还是一个流。你只需要说,我要流里面的第一个,我要按第一个的值加1,得到一个新东西y,再把y的值放到另一个流里面,比如。这种对流的操作可以规范化,模型也比较直观,避免了每次都从x写起。我们lifted了,提升了,变成ReactiveX了。
设系统的全部类型的集合为setX,
对其中的每个元素进行Reactive化,
我们可以得到集合Reactive-setX,
该Reactive-setX是类型集合setX的
流操作描述。
根据需要,流还可以组合,过滤啥的。
因此,可以建立起一个系统的流层:
system
gamobject
comonents
stream layer (reactived)
discreate types
除Awake以外 都可以控制脚本对象的setActive状态
类内枚举必须用类名.出来
Inspector>外部调用(外部赋值)>Awake>OnEnable>Start
Inspector》Awake》OnEnable》
Start
在退出页面时,由于只能回到主面板,所以需要使用mUIFacade.currentScenePanelDict[StringManager.MainPanel].EnterPanel();
言简意赅,不错!!!
由于 setpanel中有三个做好的页面,选项,数据统计,制作方,所以需要引用他们
public void InitDict(){
foreach (var item in mUIManager.currentScenePanelDict)
{
// Debug.Log(canvasTransform);
item.Value.transform.SetParent(canvasTransform);
item.Value.transform.localPosition = Vector3.zero;
item.Value.transform.localScale = Vector3.one;
IBasePanel basePanel = item.Value.GetComponent<IBasePanel>();
if (basePanel==null)
{
Debug.Log("获取面板上IBasePanel脚本失败");
}
//TODO:初始化脚本
basePanel.InitPanel();
currentScenePanelDict.Add(item.Key,basePanel);
}
}
这里为什么从mUIManager.currentScenePanelDict遍历后又赋值给currentScenePanelDict
mask.transform.SetSiblingIndex(100);
你是谁
和其他子物体没法进行合批
漫反射
(本节介绍了,漫反射与点乘的关系,有必要学一下)
(讲解为什么法线向量与入射光线的点乘为COS角度)
当光线垂直射入物体后,反射的光线是最强的。
当光线几乎平行于表面,反射的光线是最弱的。
C (diffuse) = C (光) . m (物体) . max(0,(n向量 . l 向量))