Я хочу, чтобы таймер обратного отсчета показывался быстрее, когда время отсчитывается. «тик» - очень короткий аудиоклип.Повторите аудио клип в Unity со все меньшими интервалами
У меня работает таймер, который вызывает playTickManager() каждый кадр.
Однако с этой реализацией при некоторых переходах отмены/повторного вызова промежуток между тиками является несогласованным или перекрывается, вызывая неестественное звучание.
Есть ли лучший способ реализовать это, не ускоряя фактический аудиоклип, тем самым поддерживая шаг и т. Д.?
// This is called every frame by the 'timer' script as it counts down to 0.
// 'seconds' is a float.
void playTickManager()
{
Debug.Log(seconds);
if (seconds >= 20 && tickPlaySpeed != 1)
{
InvokeRepeating("playTickAudio", 1f, 1f);
tickPlaySpeed = 1;
}
else if (seconds >= 16 && seconds < 20 && tickPlaySpeed != 2)
{
CancelInvoke("playTickAudio");
InvokeRepeating("playTickAudio", 0f, .85f);
tickPlaySpeed = 2;
}
else if (seconds >= 12 && seconds < 16 && tickPlaySpeed != 3)
{
CancelInvoke("playTickAudio");
InvokeRepeating("playTickAudio", 0f, .7f);
tickPlaySpeed = 3;
}
else if (seconds > 8 && seconds < 12 && tickPlaySpeed != 4)
{
CancelInvoke("playTickAudio");
InvokeRepeating("playTickAudio", 0f, .55f);
tickPlaySpeed = 4;
}
else if (seconds >= 4 && seconds < 8 && tickPlaySpeed != 5)
{
CancelInvoke("playTickAudio");
InvokeRepeating("playTickAudio", 0f, .4f);
tickPlaySpeed = 5;
}
else if (seconds > 0 && seconds < 3 && tickPlaySpeed != 6)
{
CancelInvoke("playTickAudio");
InvokeRepeating("playTickAudio", 0f, .25f);
tickPlaySpeed = 6;
}
else if(seconds <= 0)
{
CancelInvoke("playTickAudio");
tickPlaySpeed = 0;
}
}
void playTickAudio()
{
AudioSource.PlayClipAtPoint(tickAudio, gameObject.transform.position, 1f);
}
Каков минимальный и максимальный обратный отсчет времени? Сколько секунд стоит первый тик? – Programmer
min = 0, max - это все, что передается. Сценарий таймера просто выполняет следующее обновление: timeleft = timeleft-Time.timeDelta; playTickManager();» – mbka
Важный момент здесь. @mbka ... никогда, *** КОГДА-ЛИБО ***, используйте «еще если» по какой-либо причине. Это похоже на использование «глобалов» в программном обеспечении - никогда не делайте этого. – Fattie