学习日记#08
文章目录
Untiy
一般功能架构
Info类, 单描述属性信息
Json文件, 存储所描述的信息
InfoJsonList类, 存储list信息
[Serialize] Attribute 序列化支持 ISerializeCallback 可在序列化阶段产生的回调
XXManager类, 对存储的数据进行处理,记录
XX类,View类用来处理外显内容
Photographer
相机的有效办法, 设置一个空节点为target, 注入这个目标,rotation 设置 yaw 偏航角 pitch 俯仰角
armlength臂长 可动态调整 相机摇臂
Movement
采用 Quaternion 描述的相机正前方,获取偏航角得到世界旋转描述
人物前后角移动向前,采用球形插值转向输入轴(要乘上世界偏航)的人物朝向变化
UnityEngine.EventSystem
unity的事件系统,有多个好用的接口可使用,
Animator
animator animator controller animation 三剑客
avater 替身系统
ik 反动力骨骼 使得反演算靠经
animator blendTree 动画混合
Avater Mask + Animater Layer 实现动画混合 可以复用不同动画部件,比如持枪和行走
可以实现疲劳
Generic 根节点描述
Humanoid 应用根节点,骨骼描述,可改变动画播放速度调整控制速度 OnAnimatorRoot 手动根动画,获得相对位移和相对转角,被缩放所影响,被Avator缩放所影响,
默认值属性, 会引发动画问题,会刷新在OnEnable记录
C++
Effective c++
item1 c++是一个语言联邦,包含过程式c,泛型式模板,面向对象式c++,函数式stl
item2 用const 代替 define 变量
item3 尽可能使用const修饰成员 c++所修饰的是位常量,而不是逻辑常量,可用mutable 修饰变量在常成员函数中修改位常量
cmake
cmake管理编译器行为和包控制
stl
std::valarray 好用的std库,98就提出了,可对所有元素积累计算
English
Fatigue 疲劳
经验
注意断点回溯
注意使用magic number 分离逻辑
update命名函数记得调用入Update
子类的访问修饰符可高于父类,不可低于
c# 提供new关键字实现隐藏