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

105 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 18 天

一、本堂课重点内容:

  • 本堂课的知识要点有哪些?

    1. 3D 游戏中的实体模型、材质与位姿
    2. 相机、光照、天空盒
    3. 游戏控制、刚体属性与物理碰撞
    4. 玩法逻辑与游戏UI

二、详细知识点介绍:

  • 本堂课介绍了哪些知识点?

3D实体搭建

3D游戏由一个个具有形状的实体组成,每个实体在空间中存在于特定的位置,有特定的姿态(旋转角度)。位置position(x,y,z) 旋转rotation(x,y,z) 缩放scale(x,y,z)都是三维向量坐标。

在unity中,绝大部分情况下是先缩放,后旋转,最后平移。

创建实体时,美术同学给的maya做好的模型有fbx,gltf,obj等,或者通过组合参数化的基本几何体创建。绘制时,修改材质、纹理、颜色。

image.png 游戏开发时基于预制体prefab,预制体存储游戏对象

相机,光照,天空盒

相机是3D空间到2D的降级。选clear flag,背景颜色,culling mask,projection选择投影方式:透视far,near,fov/正交far,fear,size

光照:类型包括:电光源、平行光、聚光灯、面积光。其他介绍:颜色、强度、阴影类型

天空盒:相机的清除标志设为“天空盒”,讲到了窗口-渲染-照明设置。天空盒材质

三、实践练习例子:

  • 火箭展示

  • 控制与碰撞的案例 过程:初始化-物理-输入-游戏逻辑-渲染-停顿-销毁

    • 通过物理管理器——实现碰撞
    • 通过Input.GetAxis()与InputManager监听玩家输入
    • 通过Instantiate()动态生成游戏实体实例
  • MonoBehaviour是一个基类,所有Unity脚本都派生自该类

    • Start()在首次调用任何Update方法之前在帧上调用
    • Update()每帧调用
    • FixedUpdate()每个固定帧调用
    • LateUpdate()每次调用Update函数后调用
    • OnGUI()渲染和处理GUI事件,可多次调用
    • OnDisable()在对象销毁时调用
    • OnEnable()在对象变为启用和激活时调用

四、课后个人总结:

  • 本章有什么知识点不容易掌握?
  • 什么地方容易与其他内容混淆?

了解游戏开发的基本流程,需要后面再看一遍,第一遍记不住

五、引用参考:

  • 我参考了哪些外部博客/笔记/文章?
  • 文章中有什么地方是我参考引用了外部博客/笔记/文章的?