fix tick timer without clip

This commit is contained in:
2017-06-02 06:12:14 +07:00
parent 84a7539b56
commit 90b2d90157
2 changed files with 14 additions and 9 deletions

View File

@@ -309,18 +309,23 @@ namespace FTRuntime {
// ---------------------------------------------------------------------
internal void Internal_Update(float scaled_dt, float unscaled_dt) {
if ( isPlaying ) {
_tickTimer += useUnscaledDt ? unscaled_dt : scaled_dt;
do {
var frame_rate = clip ? clip.frameRate * rateScale : 0.0f;
var frame_time = frame_rate > 0.0f ? 1.0f / frame_rate : 0.0f;
if ( frame_time > 0.0f && frame_time <= _tickTimer ) {
_tickTimer -= frame_time;
while ( isPlaying && clip ) {
var dt = useUnscaledDt ? unscaled_dt : scaled_dt;
var frame_rate = clip.frameRate * rateScale;
if ( dt > 0.0f && frame_rate > 0.0f ) {
_tickTimer += frame_rate * dt;
if ( _tickTimer >= 1.0f ) {
var unused_dt = (_tickTimer - 1.0f) / frame_rate;
_tickTimer = 0.0f;
TimerTick();
scaled_dt = unused_dt * (scaled_dt / dt);
unscaled_dt = unused_dt * (unscaled_dt / dt);
} else {
break;
}
} while ( isPlaying );
} else {
break;
}
}
}

View File

@@ -84,7 +84,7 @@ dipyalov: фишка в том, что swf обновился, но и собр
**** DONE Unity может переставлять сабмеши на одинаковой глубине (проблема с масками)
https://fogbugz.unity3d.com/default.asp?910858_0diqjnj67814hj3i
http://ru.esotericsoftware.com/forum/Submeshes-render-in-random-order-with-orthographic-camera-8528
**** TODO При автоплее с пустым клипом контроллер накапливает _tickTimer
**** DONE При автоплее с пустым клипом контроллер накапливает _tickTimer
**** DONE Шейпы в классических твинах (да, это ошибка, но флеш её пропускает) не растеризуются
**** TODO При множественном импорте ошибка в импорте по поводу удаление из-под носа ассета воспроизводится 100%
**** TODO Некорректно кончающиеся твинны плохо дружат с оптимизацией и растеризацией