3D游戏入门了解| 青训营笔记

103 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第14天

在没有美术的情况下写出demo

将游戏制作分为四部分:

1. 3D实体搭建

3d实体位姿态Transform: 3个坐标系:位置、旋转、缩放

unity中,绝大情况下,先缩放,后旋转,最后平移

3D实体构建方法

  • 3D模型创建
  • 组合化参数的基本几何体

游戏中实体的部分较多,少采用继承方式,多使用组合的方式 在一开始创建很多预制体(prefab),通过堆积木的方式,将其组合成复杂模型

2. 环境光影

  • 相机
  • 光照
  • 天空盒

相机

culling Mask一般是负责其他游戏者无法看到 透视投影:正交投影/透视投影选择

光照

  • 光源:点/平行光/聚光灯/面积光
  • 颜色
  • 强度
  • 阴影类型:边缘清晰与否

天空盒

不管什么位置,都可以看到环境纹理

控制与碰撞

每一帧流程

image.png

控制

  1. 添加刚体组件——设置约束
  2. 添加脚本

image.png

unity的输入: Input.GetAxis()以及管理输入的InputManager

碰撞

不同游戏对象,放在不同的图层中,发生不同交互

为对象添加碰撞体,在3d游戏中,球的碰撞计算最简单,只需计算球心距离即可

玩法和UI

射击功能 点击空格后实例化新的炮弹

为炮弹添加碰撞操作:飞出视角/碰到另一个实体

右上角显示计分板

总结

image.png

之前看到的一篇文章,用原生js写了飞机大战 # 用原生JS写一个飞机大战小游戏 微信小程序版 之前还有一个贴出码上掘金部分的,忘记了 之后可以尝试一下