1.先设置结构体↓用于传速度设置的相关参数
public struct SpeedChangeInfo
{
public float percent; //改变速度的百分比
public float dura; //改变速度的持续时间
}
2.速度百分比,用于每次获取速度值时按比例
public static float _percetV = 0f;
//速度百分比
public static float percentV
{
get { return 1-_percentV; }//如果速度变量就是“速度”,请修改为:“return _percentV”
set { _percetV += value; }
}
3.速度值。一般来说是设置一个float值来代表玩家的移动速度,但我这里的moveTime代表移动固定距离的时间,也就是这里的值与速度成反比。(如果这里是移动速度,就需要修改2,按备注修改)
public static float _moveTime = 0.6f
public static float moveTime
{
get { return percentV * _moveTime; }
set { _moveTime = value; }
}
4.协程设置
IEnumerator SpeedPercentChange(SpeedChangeInfo data)
{
percentV = data.percent;//如果data.percent=0.6f,就是加速60%的基础移动速度。_percetV=0.6f,移动间隔就会减少40%
yield return new WaitForSeconds(data.dura);
percentV = -data.percent;
}
5.调用函数
public void SetSpeedAndDuration(SpeedChangeInfo data)
{
StartCoroutine(SpeedPercentChange(data));
}