这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天
添加玩家
添加控制逻辑
- 添加刚体组件
- Add Componets > Physics > Rigidbody
- 设置 Use Gravity 为 false,忽略重力影响
- 设置 isKinematic 为true(设置飞船的运动属性通过脚本影响,如果此项为false则飞船的运动属性受到合力影响)
- 设置Constraints,设置飞船只能做x,z轴的平移(冻结x,y,z的转动和z轴的平动)
- 添加自定义脚本(设置飞船的动态表现)
- Add Components > New Script
MonoBehaviour
是一个基类,所有的Unity脚本都派生自此类
补充
- FixedUpdate() 与Update()跟着时间走不同,而它是跟着逻辑秩序走的。运行时间独立于帧率
- LateUpdate() 用来控制脚本运行的时序
Input.GetAxis()可以获得对象的当前位移,.deltaTime可以获得上一帧到当前帧过去的时间
Input.GetAxis()和输入管理器(InputManager)
InputManager是 Unity设置相应方式的管理列表,位置在Edit > Project > Setting > Input中,脚本里设置的值都是从InputManager里取
敌机
添加敌机
- 为每个敌机预制体添加一个刚体(与之前的方法一样)
- 建立敌机的脚本Enemy.ts
- 为每架敌机添加脚本
与玩家控制的飞机不同的是,敌机需要通过AI而不是键盘输入控制飞船
随机生成敌机
设置敌机管理器:新建一个名为Main的C#脚本,绑定到Main Camera上
该脚本获取了游戏的camWidth和camHeight,并且使用单例管理Main,并且设置敌机距离地图左右边界的位置和每秒产生敌机的数量,使用Invoke触发生成敌机的事件