前言
在很多游戏中都会有控制飞行物的情况,可以通过研究对于鸟的控制来了解一些飞行模式
1,如何控制鸟飞行
为了尽量模拟鸟的飞行方式,采用下面的控制策略:
移动:
- 按住W键控制鸟向前加速到最大速度并保持
- 按住S键控制鸟减速到最小的速度
- 不按住W键和S键则鸟同样缓慢减速
转向:
- Space键控制鸟向下飞
- Shift键控制鸟向上飞
- 不按Space键和Shift键则鸟上下角度回正
- A键和D键则控制物体左转和右转
2,通过代码来实现相关功能
移动的代码实现:
首先定义一个float变量speedOne作为控制物体的飞行速度,判断物体按下不同的按键时,speed做出不同的改变,然后在Update中调用speed控制物体的移动,使用transform.Translate来完成:
if(Input.GetKey(KeyCode.W) && speedOne<10f)
{
speedOne = speedOne + Time.deltaTime*0.2f;
}
//按下S键并且速度没达到最小,则速度减小
if (Input.GetKey(KeyCode.D) && speedOne > 1f)
{
speedOne = speedOne + Time.deltaTime * 0.2f;
}
//没有执行速度操作并且速度大于最小速度,则缓慢操作
if (!Input.GetKey(KeyCode.W)&& !Input.GetKey(KeyCode.D)&&speedOne >1f)
{
speedOne = speedOne - Time.deltaTime * 0.1f;
}
transform.Translate(Vector3.forward * speedOne * Time.deltaTime);
转向代码的编写:
- 首先就是实现按键的控制功能,可以让鸟进行正常的转向,首先是上下的转向,当按下Space和Shift键时开始转向:
//按下空格,若在可旋转角度,则向上旋转
if (Input.GetKey(KeyCode.Space) && !(transform.eulerAngles.x >= 30 && transform.eulerAngles.x <= 350))
{
transform.Rotate(