好的,我正在使用商店中的Chronos资产,该资产可以反转/更改时间进度。很好,但是我试图使用滑块允许用户及时控制实际的PLACE(范围从0到180秒,此时游戏结束)。
现在,我使滑块按照这样用完的时间的“百分比”移动:
testSlider.value = gameController.mutableTimePercentage;
void getTimePercentages()
{
overallTimePercentage = Time.time / maxTime;
mutableTimePercentage = mutableClock.time / maxTime;
}
我可以像这样在时标之间进行切换(这会在0.1秒内将标度从1变为-1):
mutableClock.LerpTimeScale(-1, 0.1f, true);
但是我不完全了解如何以2倍的正常速度向前或向后(时间刻度= -1)前进,直到mutableClock.time ==用户在滑块上的位置给出的时间。
这是我想用伪代码执行的操作,因为手动设置时间var不起作用-
while(mutableClock.time != newValue)
{
if(newValue > mutableClock.time) //forward
{
mutableClock.LerpTimeScale(2, 0.1f, true); //need to ease
} else { //backward
mutableClock.LerpTimeScale(-2, 0.1f, true);
}
}
但是上面这个有缺陷,因为我不知道,要前进(以某种时间间隔),我需要正常速度的2倍,可能需要1.5倍左右的速度。
几乎像iOS游戏的“因果关系”。我怎样才能做到这一点?