这是我参与「第五届青训营」伴学笔记创作活动的第 17 天
Unity3D是什么
Unity3D是由Unity Technologies开发的一个能让玩家轻松创建诸如三维游戏、虚拟现实、实时电影与动画、建筑可视化、数字教育、汽车/运输与制造等众多类型互动内容的多平台的综合型游戏开发工具,是一款功能强大的专业游戏引擎。Unity类似于Director,Blender,Virtools或Torque Game Builder等利用交互的图形化开发环境为首要方式的软件。
3D实体
- 3D游戏是由一个个具体形状的实体组成的,每一个实体在空间中存在于特定的位置,有特定的姿态(旋转角度)。
3D实体的位姿态(Transform)
- 位置Position(x,y,z) 是三维向量坐标
- 旋转 Rotation(x,y,z), 是一个三维向量坐标
- 缩放 Scale(x,y,z), 是一个三维向量坐标
在Untiy中,绝大部分情况下,是先缩放,后旋转,最后平移
3D实体的创建
- 通过加载 3D 模型创建,如 fbx、gltf、obj
- 通过组合参数化的基本几何体创建。
3D实体的绘制
- 材质
- 颜色
- 纹理
相机,光照,天空盒
相机
- Clear Flag。
- 背景颜色。
- Culling Mask。
- 投影(透视、正交)
光照
- 类型:点光源、平行光、聚光灯、面积光。
- 颜色。
- 强度。
- 阴影类型。
天空盒
- 相机的清除标志设为"天空盒"。
- 窗口-渲染照明设置。
- 环境-天空盒材质。
控制与碰撞
为主角飞船添加控制逻辑
添加刚体组件。
- Add Component > Physics > Rigidbody.
- Use Gravity设置为false,忽略重力的影响。
- isKinematic设置为true,飞船通过脚本而非力影响运动属性。
- 设置Constraints ,冻结Z轴位移以及X、Y、Z轴旋转。
添加自定义脚本。
- Add Component > New Script
添加敌机
为每架敌机预制体添加一个刚体。
- 选中敌机预制体,在菜单栏执行Component > Physics > Rigidbody
- 在新添加的刚体组件中,将Use Gravity设置为false.
- 将isKinematic设置为true。
- 打开Constraints旁边的三角形展开按钮,冻结Z轴的坐标和XYZ轴的旋转。
建立敌机的脚本Enemey.cs。
为每架敌机预制体均添加脚本Enemy.cs。