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

70 阅读2分钟

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

1.3D实体搭建

  1. 3D实体:3D游戏是由一个个具有形状的实体组成的。每个实体在空间中存在于特定的位置,有特定的姿态(旋转角度)。
  2. 3D 实体的位姿态(Transform):
  • 位置 Position (x, y, z),是一个二维向量坐标
  • 旋转 Rotation (x, y,z),是一个二维向量坐标
  • 缩放 Scale (x, y, z),是一个二维向量坐标
  • 在Unity中,绝大部分情况下,是先缩放,后旋转,最后平移
  1. 3D 实体的创建:
  • 通过加载3D模型创建,如 fbx、gltf、 obj
  • 通过组合参数化的基本几何体创建
  1. 预制体
  • 将游戏对象保存在工程中,在需要的时候创建出来,这就是预制体(prefab)
  • 预制体存储着一个游戏对象,包括游戏对象的所有组件以及其下的所有子游戏对象。

2.控制与碰撞

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

Add Component > New Script

  1. MonoBehaviour 是一个基类,所有 Unity 脚本都派生自该类
  • Start()

在首次调用任何 Update 方法之前在顿 上调用 Start。

  • Update()

每帧调用 Update。

  • FixedUpdate()

用于物理计算且独立于顿率。具有物理系统的频率;每个固定帧率顿调用该函数

  • LateUpdate().

LateUpdate 在每一次调用 Update 函数后调用

  • OnGul()

系统调用 OnGU 来染和处理 GUI 事件。OnGUI 实现可以每调用多次 (每个事件调用一次)。

  • OnDisable()

该函数在对象被禁用时调用。对象销毁时也会调用该函数

  • OnEnable()

该函数在对象变为启用和激活状态时调用