前端技术栈之3D游戏开发 | 青训营笔记

306 阅读2分钟

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

前端技术栈之3D游戏开发 | 青训营笔记

一名程序员,如果在没有美术的前提下,制作一个游戏Demo,让别人亲身体验以了解游戏机制。

3D实体搭建

3D游戏是由一个个具有形状的实体组成的。每个实体在空间中存在特定的位置,由特定的姿态(旋转角度。)

3D实体的位姿态

  1. 位置(x,y,z),位置是一个三维向量坐标。
  2. 旋转(x,y,z),旋转是一个三维向量坐标。
  3. 缩放(x,y,z)。旋转是一个三维向量坐标。

3D实体的创建

  1. 通过加载3D模型创建,如fbx,ghf,obj。
  2. 通过组合参数化的基本几何体创建

实体的绘制

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

预制体

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

相机,光照,天空盒

相机

  1. Clear Flag。
  2. 背景色
  3. Culling Mask。
  4. 投影(透视,正交)

光照

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

天空盒

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

控制与碰撞

为主角飞船添加控制逻辑

  1. 添加刚体组件
  • Add Component > Pysics > Rigidbody
  • Use Gravity 设置为false,忽略重力的影响
  • isKinematic 设置为 true , 飞船通过脚本而非力影响运动属性
  • 设置Constraints,冻结Z轴位移以及X,Y,Z轴旋转
  1. 添加自定义脚本
  • Add Component > New Script

添加敌机

  1. 为每架敌机预制体添加一个刚体。
  2. 建立敌机的脚本Enemey。cs。
  3. 为每架敌机预制体均添加脚本 Enemy,cs。

总结

  • 学习在Unity中创建实体,给实体设置位姿,材质,刚体,脚本。
  • 学会配置相机,光,天空盒。
  • 理解实时游戏update的时序机制
  • 通过Instatiate< GameObject >()动态生成游戏实体实例。
  • 从Canmera。main获得相机参数,设置场景中的物体在画面中的位置。
  • 利用标签,图层管理器区分实体种类并设置物理规则。
  • 通过Collider组件uOntrigger函数添加碰撞事件。
  • 通过图形用户界面(GUI)管理游戏界面