1
1
闪退拉,哈哈哈哈哈哈
public void RegisterTouchEvts()
{
PEListener listener = touchArea.gameObject.AddComponent<PEListener>();
listener.onClickDown = (PointerEventData evts) =>
{
dirBgImg.transform.position = evts.position;
};
}
应该根据id找相同格子,不应该根据类型找,后面老师这肯定报错。
法线代表方向,只有三维没有四维
法线变换不一定遵循顶点空间变换的矩阵,
遵循的是 矩阵的逆转至,所以如果变换是线性变换,矩阵的逆等于矩阵的转换。(也就是旋转和缩放)。如果有平移就还是需要使用矩阵的转置逆或者逆转置。
投影矩阵在x,y轴做了缩放,Z轴做了平移,第四个分量将Z值取反,改变了空间的旋向性,从左手坐标系转为右手坐标系。
一个矩阵的行列式不等于0说明这个矩阵式可逆的
叉乘结果相当于三阶行列式结果:如下
i, j, k
x1,y1,z1
x2,y2,z2
变换物体和变换坐标系来旋转物体的区别
叉乘意义,判断三角面片的朝向;
每多一个pass通道DrawCall就会多一次
将模型坐标转换到齐次裁剪坐标的函数:
unityobjectToClipPos(v.vertex);
设相机size = x,则 2x/图片的单位宽 = 屏高 / 屏宽
lightmap 灯光烘焙 , 静态场景的lightmap settings 下面的 scale in lightmap 就是烘焙的权重, 0-1, 次要选择0.2
light设置下,
light resolution 是光的分辨率 烘焙影响很大
lightmap resolution 是形成的贴图的分辨率, 烘焙 影响很大
final gether 是贴图连接处的平滑度,
directional mode 是光作用于贴图的法线, 决定立体感。
开启全局光照烘焙, 设置减性substractive , 就是动态用实时光照, 其他全部烘焙。
fog雾的效果, 不在场景内, 是摄像机 , 参数为距离摄像机的 开始距离结束距离。
烘焙出来的文件就是在当前场景的文件夹
AudioListener 只需要一个 并且不能销毁, 放在管理物体,
血条: 作为UI ,血条子物体包括 伤害,闪避暴击等,
伤害跳跃框, 不需要tips那样的队列取出 , 因为可能伤害吸收很快, 动画结束了还在跳伤害就很奇怪, 所以新受到伤害, 直接停止旧的动画,重新播放新的。
关闭动画, animation.stop(); 播放 .play();
血条管理, Camera.main.WorldToScreenpoint( vec 3); 获取的是一个点,怪物头顶的HPROOT,可以解决偏移 。 血条是RectTrans 还需要按点变换 rect, 再修改一个比例适配, 标准比例 和屏幕高度的比例 ,
灰条: 血条缓冲 , 红条实时计算, 灰条不计算,只根据是否等于红条来update 填充, 根据time.deltatime +-,
技能CD: 按下A,{如果技能非CD则使用技能且变CD状态, 如果技能在CD则输出正在冷却} , 然后每秒判断,如果正在冷却且冷却倒数大于eltatime, 则-=deltatime, 如果小等于deltatime,则判断冷却完毕变非CD,
封装成一个方法, 后续要添加新的技能按键就直接加一个方法, 很简单 。
if(input.A) {
if(A非冷却) 释放A,变冷却;
else
输出A在冷却;
if(A在冷却&&倒数大于0.02)
倒数-=0.02
else
A改为非冷却
}
封装成一个方法 参数为按键和UI图片, 后续要添加新的技能按键就直接加一个方法, 不需要在内部添加 ,
刚学完灯光与渲染,然后跳过来学设计模式,学到54课时,感觉学的好吃力。
里氏替换原则:所有引用基类(父类)的地方必须能透明地使用其自雷的
依赖倒转原则
高层模块不应该依赖低层模块,它们都应该依赖抽象(接口或抽象类),抽象不应该依赖于细节,细节应该依赖于抽象。
要针对接口编程,而不针对于实现编程。
代码中使用抽象类,而将具体类放在配置文件中
类之间的耦合:1零耦合关系2具体耦合关系3抽象耦合关系
依赖倒转原则要求客户端依赖于抽象耦合,以抽象模式耦合是依赖倒转原则的关键。