这是我参与「第五届青训营 」伴学笔记创作活动的第 17
3D实体的位姿态
位置Position(x,y,z),是一个三维向量坐标
旋转Rotation(x,y,z),是一个三维向量坐标
缩放Scale(x,y,z),是一个三维向量坐标
在Unity中,绝大部分情况下是先缩放再旋转再平移
3D实体的创建
通过加载3D模型创建,通过组合参数化的基本几何体创建
3D实体的绘制
材质、颜色、纹理
预制体
将游戏对象保存在工程中,在需要的时候创建出来,这就是预制体。预制体存储着一个游戏对象,包括游戏对象的所有组件以及其下的所有子游戏对象
相机
Clear Flag、背景颜色、Culling Mask、投影
光照
类型:点光源、平行光、聚光灯、面积光;颜色;强度;阴影类型
天空盒
相机的清除标志设为“天空盒”;窗口-渲染-照明设置;环境-天空盒材质
为主角飞船添加控制逻辑
添加刚体组件:Add Component > Physics > Rigidbody;Use Gravity设置为false,忽略重力的影响;isKinematic设置为true,飞船通过脚本而非力影响运动属性;设置Constraints,冻结Z轴位移以及X,Y,Z轴旋转
添加自定义脚本:Add Component > New Script
MonoBehaviour是一个基类,所有Unity脚本都派生自该类
Input.GetAxis()和输入管理器(InputManager)
InputManager是Unity设置输入相应方式的管理列表,它的位置在Edit > Project Setting > Input中
添加敌机
为每架敌机预制体添加一个刚体:选中敌机预制体,在菜单栏执行Component > Physics > Rigidbody;在新添加的刚体组件中,将Use Gravity设置为false;将isKinematic设置为true;打开Constraints旁边的三角形展开按钮,冻结Z轴的坐标和XYZ轴的旋转
建立敌机的脚本Enemey.ts
为每架敌机预制体均添加脚本Enemy.ts
随机生成敌机
新建一个名为Main的C#脚本,绑定到Main Camera上
添加碰撞代码
在Hero类中添加OnTriggerEnter函数