3D游戏实战开发|青训营笔记

75 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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实体的绘制

  1. 材质
  2. 颜色
  3. 文理

预制体

  • 将游戏对象保存在工程中,在需要的时候创建出来,这就是预制体(prefab)。
  • 预制体存储着一个游戏对象,包括游戏对象的所有组件以及其下的所有子游戏对象。

相机,光照,天空盒

相机

  • Clear Flag
  • 背景颜色
  • Culling Mask
  • 投影(透视、正交)

image.png

光照

  1. 类型:点光源、平行光、聚光灯、面积光
  2. 颜色
  3. 强度
  4. 阴影类型

天空盒

  • 相机的清除标志设为“天空盒”
  • 窗口-渲染-照明设置
  • 环境-天空盒材质

控制与碰撞

一帧的内容

  1. 初始化
  2. 物理
  3. 输入
  4. 游戏逻辑
  5. 渲染
  6. 停顿
  7. 销毁

2到6为一帧

游戏中的优化: 主要涉及减少物理、逻辑或渲染中的运算量。例如减少无意义的碰撞检测,用更少的计算量达到相同的执行目标,在用户感知不到差异的前提下尽可能裁剪渲染

input.GetAxis()和输入管理器(inputManager)

InputManager是Unity设置输入响应方式的管理列表,它的位置在Edit>ProjectSetting>Input中