不是,模为1的任何方向向量为单位向量。 v3.Normalize();
Vector3.Distance(v1,v2);
2*3*cos60;2*3*sin60;
Vector3.Cross(a,b)>0 , 逆时针
不是,模为1的任何方向向量为单位向量。 v3.Normalize();
Vector3.Distance(v1,v2);
2*3*cos60;2*3*sin60;
Vector3.Cross(a,b)>0 , 逆时针
某个库有nuget还是用nuget好了,直接复制dll都不知道少了什么依赖
ab = x1x2 + y1y2
ab = |a||b|cos&
几何意义:用于求两个向量的夹角
cos&
正为锐角
0为垂直
负为钝角
Pass中Tags独有属性
LightMode 定义该pass通道在Unity渲染流水中的角色
RequireOptions 满足某些条件时才渲染该Pass通道
注意使用resource.load 加载资源时,确保资源名称大小写,不一致时由于加载机制还是会加载到资源,但resloader判断时会由于名称不一致进行再次load。
Render设置
Cull off/back/front 选择渲染哪个面
ZTest Always/Less Greater/LEqual/GEqual/NotEqual 深度测试
ZWrite off/on深度写入
Blend SrcFactor DstFactor 混合
LOD //不同情况下使用bu
Tags 标签
Queue //渲染顺序
RenderType //着色器替换功能
DisableBatching //是否进行合批
ForceNoShadowCasting //是否投射阴影
IgnoreProjector //受不受Projector的影响,通常用于透明物体
CanUseSpriteAltas //是否用于图片的shader,通常用于UI
PreviewType //用作shader面板预览的类型
subshader语义块
Tags
unity属性类型
Int
float
Range(x,y):范围值
Color
Vector (x,y,z,w)
2D
Cube
3D
应用阶段-几何阶段-光栅化阶段
cpu应用阶段:
GameManager(单例)
PlayerManager 作为GameManager中的成员变量,记录玩家信息。作为Gamemanager中的成员变量
AudioSourceManager 记录音效、音乐的信息
FactoryManager 有很多游戏
下面有个根据已有的任务创建新任务的选项
单个数值的变化,用委托的方式更加合适。比如,金币,分数,等级等。
颗粒度较大的用事件比较合适。比如从服务器拉取了一个任务列表数据,任务数据列表存到了model,此时model的任务列表发生了变更,这个时候向view发送事件
Model和View是自底向上的关系
很神奇,Application.dataPath + "/../Version"最后还要加个斜杠才能正确打开目标目录
直接看代码效率还高些,听老师讲太犯困了,没有图示啥的就不停地敲代码
缺乏一个判定值会导致报错但不会有影响。
应该在判断X跟Y在正常范围值那段里再加上判断i与j是否在正常范围值,要不然在边缘的数字元素上按下鼠标中键会提示错误。
实在没理解啊,好难
交互逻辑:View->Model
表现逻辑:Model->View
子节点通知父节点用委托或者事件
父节点调用子节点可以直接方法调用
跨模块通信 用事件
耦合就是双向引用或者循环引用
静态类不能继承