这是我参与「第五届青训营」伴学笔记创作活动的第 17 天
本堂课重点内容
本堂课讲师为黄高乐老师,课程分为四个部分:搭建静态物体的3D实体搭建,渲染场景氛围感的相机、光照、天空盒,赋予实体动作的控制与碰撞,以及为游戏注入灵魂的玩法逻辑与UI设计。
3D实体
3D游戏是由一个个具有形状的实体组成的,如立方体、球体等,它们存在于特定位置,有特定姿态。
- 3D实体的位姿态
在Unity中,绝大部分情况是先缩放、后旋转、最后平移
- 位置Position(x,y,z)
- 旋转Rotation(x,y,z)
- 缩放Scale(x,y,x)
- 3D实体的创建(两种方式)
- 3D实体的绘制:改变材质、颜色、纹理
- 预制体:存储游戏对象(所有组件及其所有子游戏对象)到工程中,需要的时候创建出来
相机、光照、天空盒
- 相机
- 投影
- 透视投影(近大远小)
- 正交投影
- 光照
- 天空盒
控制与碰撞
此次课堂讲解的案例是使用Unity写一个“太空大战”游戏,玩家通过控制自身飞船的位置来躲避敌机并通过发射子弹来攻击敌机获取积分。
- 为玩家飞船添加控制逻辑
-
MonoBehavior基类
-
控制飞船运动
-
输入管理器InputManger
InputManager是Unity设置输入响应方式的管理列表,它的位置在Edit > Project Setting > Input中。Gravity和Sensitivity代表松开与按下时的插值,越大平滑过澧的时间越短。
-
添加敌机
-
随机生成敌机
-
设置标签、图层与物理规则
-
敌机与玩家飞船碰撞
玩法逻辑与UI设计
- 玩家飞船增加射击功能
- 增加计分功能:消灭一个敌机玩家增加50分
- 重新开始游戏