这是我参与「第五届青训营 」伴学笔记创作活动的第 17 天。
一、什么是3D实体
3D游戏是由一个个具有形状的实体组成的。每个实体在空间中存在于特定的位置,有特定的姿态(旋转角度)。
二、3D实体的位姿态
1.位置Position (x, y, z),是一个三维向量坐标
⒉旋转 Rotation (x, y,z),是一个三维向量坐标
3.缩放 Scale (x, y, z),是一个三维向量坐标
在Unity中,绝大部分情况下,是先缩放,后旋转,最后平移。
三、3D 实体的创建
1.通过加载3D模型创建,如fbx、gltf、obj.
2通过组合参数化的基本几何体创建。
四、3D 实体的绘制三要素
1.材质。
2.颜色。
3.纹理。
五、预制体
将游戏对象保存在工程中,在需要的时候创建出来,这就是预制体(prefab)。
预制体存储着一个游戏对象,包括游戏对象的所有组件以及其下的所有子游戏对象。
六、相机
1. Clear Flag。2.背景颜色。
3.Culling Mask.4.投影(透视、正交)
光照
1.类型:点光源、平行光、聚光灯、面积光。2颜色。
3.强度。
4.阴影类型。
设置标签、图层和物理规则
游戏中存在不同类型的游戏对象,它们需要放置在不同的图层中,并与其他游戏对象发生不同的交互。
标签和图层管理器
1.菜单栏中执行Edit > Project Settings > Tags and Layers命令。
2打开Tags左侧的三角形展开按钮。单击标签下方的+符号并输入标签名称。3.单击 Layers旁边的三角形展开按钮从 User Layer 8开始,依次输入图层名称
物理管理器
菜单栏中执行Edit > Project Settings > Physics命令。
知识点总结
- 学习在Unity中创建实体,给实体设置位姿、材质、刚体、脚本。
- 学会配置相机、光、天空盒。
- 理解实时游戏update的时序机制。
- 通过lnput.GetAxis()与lnputManager监听玩家输入。
- 用InstantiateGameObject()动态生成游戏实体实例。
- 从Camera.main获得相机参数,设置场景中的物体在画面中的位置。
- 利用标签、图层管理器区分实体种类并设置物理规则。
- 通过Collider 组件与OnTrigger函数添加碰撞事件。
- 通过图形用户界面(GUI)管理游戏界面。