这是我参与「第五届青训营 」伴学笔记创作活动的第14天
在没有美术的情况下写出demo
将游戏制作分为四部分:
1. 3D实体搭建
3d实体位姿态Transform: 3个坐标系:位置、旋转、缩放
unity中,绝大情况下,先缩放,后旋转,最后平移
3D实体构建方法
- 3D模型创建
- 组合化参数的基本几何体
游戏中实体的部分较多,少采用继承方式,多使用组合的方式 在一开始创建很多预制体(prefab),通过堆积木的方式,将其组合成复杂模型
2. 环境光影
- 相机
- 光照
- 天空盒
相机
culling Mask一般是负责其他游戏者无法看到 透视投影:正交投影/透视投影选择
光照
- 光源:点/平行光/聚光灯/面积光
- 颜色
- 强度
- 阴影类型:边缘清晰与否
天空盒
不管什么位置,都可以看到环境纹理
控制与碰撞
每一帧流程
控制
- 添加刚体组件——设置约束
- 添加脚本
unity的输入: Input.GetAxis()以及管理输入的InputManager
碰撞
不同游戏对象,放在不同的图层中,发生不同交互
为对象添加碰撞体,在3d游戏中,球的碰撞计算最简单,只需计算球心距离即可
玩法和UI
射击功能 点击空格后实例化新的炮弹
为炮弹添加碰撞操作:飞出视角/碰到另一个实体
右上角显示计分板
总结
之前看到的一篇文章,用原生js写了飞机大战 # 用原生JS写一个飞机大战小游戏 微信小程序版 之前还有一个贴出码上掘金部分的,忘记了 之后可以尝试一下