这是我参与「第五届青训营 」伴学笔记创作活动的第32天,今天学习的课题叫做3D游戏实战开发,下面就是在课堂上学习的内容了:
3D实体搭建
3D实体:3D游戏是由一个个具有形状的实体组成的。每个实体在空间中存在于特定的位置,有特定的姿态(旋转角度)。
3D实体的位姿态(Transform):即3D实体的位置和姿态(旋转)。
在Unity中,绝大部分情况下,是先缩放,后旋转,最后平移。
3D实体的创建:有两种方式:1.通过加载3D模型创建,如fbx,gltf,obj。2.通过组合参数化的基本几何体创建。
3D实体创建完成后,就是3D实体的绘制,包括材质,颜色,纹理。在上图有图解
预制体:将游戏对象保存在工程中,在需要的时候创建出来,这就是预制体(prefab)。预制体存储着一个游戏对象,包括游戏对象的所有组件以及其下的所有子游戏对,存储的一个游戏对象就类似于游戏母体。
相机,光照,天空盒
投影分为两种:透视投影和正交投影。下面用一张图来解释:透视投影由图可以看到的 是呈锥形的,近大远小。
光照:
天空盒:
控制与碰撞
课堂上讲的是一个太空大战的例子,所以图片上是为主角飞船添加控制逻辑,但是讲的内容确是适用的:
Inputmanager是Unity设置输入响应方式的管理列表,它的位置在Edit>project setting>input中。
主角和敌机设置完成后要设置标签,图层和物理规则。
游戏中存在不同的游戏对象,他们需要放在不同的图层,并与其他游戏对象发生不同的交互。就像这个太空大战:主角飞船会与敌机,敌机炮弹,升级道具碰撞,但不会与主角飞船的炮弹相碰撞。主角飞船的炮弹会与敌机,敌机的炮弹相碰撞。敌机与主角飞船和主角飞船的炮弹相碰撞。等等
添加碰撞代码:
玩法逻辑与UI
小结
以上的图片 全部出自于字节跳动,该节课的讲师是:黄高乐;老师讲的很好,强烈推荐。