这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天
游戏静态场景搭建
3D实体
- 可以通过加载3D模型创建,如fbx、gltf、obj
- 也可以通过组合参数化的基本几何体创建
- 材质
- 颜色
- 纹理
预制体 prefab
预制体存储在工程文件中,在需要时实例化
环境
相机
降维
- Clear FLag
- 背景颜色
- culling Mask:可以裁剪掉特定对象
- 投影(透视:近大远小、正交)
FOV: 透视投影的视野宽度
光照
- 光源:
- 点光源
- 平行光
- ......
- 颜色
- 强度
- 阴影类型
天空盒
顾名思义,从任何方向能看到的天空的纹理。
控制与碰撞
实时游戏时序
- 初始化
- 物理碰撞检测
- 输入
- 游戏逻辑
- 渲染
- 停顿
- 销毁
其中2-6步在每一帧中反复进行。
刚体部件:可以设置重力、isKenematic可以用于控制刚体受力状态,constrain可以用于设置物体在各个维度上能否旋转。
通过自定义脚本为对象添加控制逻辑。
脚本继承于MonoBehaviour基类,包含Start()、Update()等方法。
输入管理器
可以通过内置的Input Manager进行控制。
Input Manager包括以下几种类型的控制方法:
- 键盘按键
- 手柄按钮
- 虚拟摇杆
碰撞盒
碰撞与刚体一样属于内置的3D物理模拟能力。 通过Colliders配置Unity中GameObjects的碰撞。决定了GameObjects的物理碰撞发生时的形状。
碰撞盒不需要与对象的Mesh完全一致。
内置的collider包括Box Collider,Sphere Collider等
标签与层级
Tag为游戏中的对象提供了标识符,便于作出区分。
不同类型的游戏对象可以放置在不同的图层中,与其它游戏对象发生不同的交互。
玩法逻辑与UI
玩法逻辑即游戏中核心交互玩法的实现。在这个飞机大战游戏中需要设计飞机射击功能、子弹碰撞检测、击落敌机计分、重新开始游戏等核心逻辑。
UI则为展现给用户的部分,希望UI能顺应逻辑,给予用户正确的视觉体验。
除了自定义脚本以外,Unity提供了大量GUI配置项用于管理游戏界面。