这是我参与「第五届青训营 」伴学笔记创作活动的第 17 天。
3D实体搭建
3D实体
3D游戏是由一个个具有形状的实体组成的。每个实体在空间中存在于特定的位置,有特定的姿态(旋转角度)。
3D实体的位姿态(Transform)
- 位置Posiition(x,y,z),是一个三维向量坐标
- 旋转Rotation(x,y,z),是一个三维向量坐标
- 缩放Scale(x,y,z),是一个三维向量坐标 注: 在Unity中,绝大部分情况下,是先缩放,后旋转,最后平移。
3D实体的创建
- 通过加载3D模型创建,如fbx,gltf,obj
- 通过组合参数化的基本几何体创建
3D实体的绘制
- 材质
- 颜色
- 文理
预制体
- 将游戏对象保存在工程中,在需要的时候创建出来,这就是预制体(prefab)。
- 预制体存储着一个游戏对象,包括游戏对象的所有组件以及其下的所有子游戏对象。
相机,光照,天空盒
相机
- Clear Flag
- 背景颜色
- Culling Mask
- 投影(透视、正交)
光照
- 类型:点光源、平行光、聚光灯、面积光
- 颜色
- 强度
- 阴影类型
天空盒
- 相机的清除标志设为“天空盒”
- 窗口-渲染-照明设置
- 环境-天空盒材质
控制与碰撞
一帧的内容
- 初始化
- 物理
- 输入
- 游戏逻辑
- 渲染
- 停顿
- 销毁
2到6为一帧
游戏中的优化: 主要涉及减少物理、逻辑或渲染中的运算量。例如减少无意义的碰撞检测,用更少的计算量达到相同的执行目标,在用户感知不到差异的前提下尽可能裁剪渲染
input.GetAxis()和输入管理器(inputManager)
InputManager是Unity设置输入响应方式的管理列表,它的位置在Edit>ProjectSetting>Input中