Unity-3D游戏初体验 | 青训营笔记

133 阅读2分钟

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

1、3D实体搭建

3D实体

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

3D实体位姿态

  1. 位置Position(x,y,z)
  2. 旋转Rotation(x,y,x)
  3. 缩放Scale(x,y,z)

image.png

位置、旋转、缩放都是一个三维向量坐标。在Unity中,绝大部分情况下,是先缩放,后旋转,然后平移。

3D实体的创建

  1. 从美术小伙伴那拿资源模型,直接使用即可
  2. 通过组合参数化的基本几何体创建

创建好之后可以调节实体的材质、颜色和纹理。

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

2、相机、光照、天空盒

相机、投影方式、光照设置和天空盒可理解为为游戏场景布局的工具

相机

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

透视和正交投影方式

image.png

光照

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

天空盒

天空盒可以理解为是一个立方体,将整个场景进行包裹,即使旋转场景依然可以看到环境上的纹理。

设置方法:

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

3、控制与碰撞

一帧的动作

image.png

可以为实体添加控制逻辑来实现某些动作,如:在重力的作用下往下掉落。

  1. 添加刚体组件
  2. 添加自定义脚本

设置标签、图层和物理规则

游戏中存在不同的游戏对象,需放在不同的图层,并与其他对象发生不同的交互

  • 主角:会与敌方的炮弹,敌方和道具碰撞,不会与自己的炮弹碰撞。
  • 敌方:与主角和主角的炮弹发生碰撞。
  • 道具:只与主角发生碰撞。

总结

3D游戏的开发感觉上是实体+环境+控制逻辑和碰撞等一些基础的知识实现。以课程中的飞机例子来说:实体的创建+添加上相机、光照、天空盒+控制逻辑可以实现简单的3D飞机案例。