3D游戏实战开发

93 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第32天,今天学习的课题叫做3D游戏实战开发,下面就是在课堂上学习的内容了:

3D实体搭建

3D实体:3D游戏是由一个个具有形状的实体组成的。每个实体在空间中存在于特定的位置,有特定的姿态(旋转角度)。

3D实体的位姿态(Transform):即3D实体的位置和姿态(旋转)。

屏幕截图 2023-02-15 152716.png 在Unity中,绝大部分情况下,是先缩放,后旋转,最后平移。

3D实体的创建:有两种方式:1.通过加载3D模型创建,如fbx,gltf,obj。2.通过组合参数化的基本几何体创建。

屏幕截图 2023-02-15 154105.png 3D实体创建完成后,就是3D实体的绘制,包括材质,颜色,纹理。在上图有图解

预制体:将游戏对象保存在工程中,在需要的时候创建出来,这就是预制体(prefab)。预制体存储着一个游戏对象,包括游戏对象的所有组件以及其下的所有子游戏对,存储的一个游戏对象就类似于游戏母体。

相机,光照,天空盒

屏幕截图 2023-02-15 154957.png 投影分为两种:透视投影和正交投影。下面用一张图来解释:透视投影由图可以看到的 是呈锥形的,近大远小。

屏幕截图 2023-02-15 155015.png 光照:

屏幕截图 2023-02-15 155036.png 天空盒:

屏幕截图 2023-02-15 155052.png

控制与碰撞

课堂上讲的是一个太空大战的例子,所以图片上是为主角飞船添加控制逻辑,但是讲的内容确是适用的:

屏幕截图 2023-02-15 161737.png

屏幕截图 2023-02-15 162151.png

屏幕截图 2023-02-15 162228.png Inputmanager是Unity设置输入响应方式的管理列表,它的位置在Edit>project setting>input中。屏幕截图 2023-02-15 162228.png

屏幕截图 2023-02-15 162942.png

屏幕截图 2023-02-15 163003.png 主角和敌机设置完成后要设置标签,图层和物理规则。

游戏中存在不同的游戏对象,他们需要放在不同的图层,并与其他游戏对象发生不同的交互。就像这个太空大战:主角飞船会与敌机,敌机炮弹,升级道具碰撞,但不会与主角飞船的炮弹相碰撞。主角飞船的炮弹会与敌机,敌机的炮弹相碰撞。敌机与主角飞船和主角飞船的炮弹相碰撞。等等 屏幕截图 2023-02-15 163852.png 屏幕截图 2023-02-15 163908.png 屏幕截图 2023-02-15 163923.png 添加碰撞代码:

屏幕截图 2023-02-15 164204.png

玩法逻辑与UI

屏幕截图 2023-02-15 164359.png

屏幕截图 2023-02-15 164410.png

屏幕截图 2023-02-15 164423.png

屏幕截图 2023-02-15 164437.png

屏幕截图 2023-02-15 164457.png

屏幕截图 2023-02-15 164519.png

屏幕截图 2023-02-15 164532.png

小结

以上的图片 全部出自于字节跳动,该节课的讲师是:黄高乐;老师讲的很好,强烈推荐。