如何根据速度更换齿轮?
我正在开发一款小型赛车游戏,并希望增加速度方面的设备。我没有在我的车上安装实际的齿轮系统。为了增加档位,我使用以下逻辑,我可以看到档位从0变为1,但没有进一步变化。如何根据速度更换齿轮?
var gr=0;
var sp=0;
sp=sp+(20*Time.deltaTime);
if(currentSpeed>=sp)
{
gr++;
gear.text="GEAR "+gr;//displaying gear
}
以上,currentSpeed
逐渐增大与时间。
我不会建议使用该方法来确定它基于速度的装备。看看这个代码:
int currentSpeed; //this will store your speed
int[] gearSpeeds = new int[]{40,80,120,160,220}; //set any number of gears and on what speeds will they switch to different gear
int currentGear = 1; //this is default value
for(int i = 0; i < gearSpeeds.Length; i++) //go through hearSpeeds array
if(currentSpeed > gearSpeeds[i]) currentGear++; //if the gear is not enough for specific speed check next it finds the right one
else break;
这是非常简单的方法来解决这个问题,你可以很容易地改变齿轮的数量和他们改变的速度。
的当前速度会如此变化?currentSpeed = Mathf.Lerp(currentSpeed,maxSpeed,Time.deltaTime);'当移动汽车并且maxSpeed为100时 –
看看这是如何相关的,只需在gearSpeeds中设置你想要的值即可。 –
谢谢@NevenIgnjic,因为我使用的是unityscript,所以我不得不在代码中更改几件事情。有效。 –
这意味着经过一次增量后,你的sp和currentpeed结伴而行(相等)或sp总是较低。在指定的时间内打印currentpeed和sp的值并比较 – MohitC
ok。我会尽快更新你 –
它在0-1之间波动,并在结束时保持0 –