static IEnumerator InterpolProcUnmanaged(float time, Action onInterpolationComplate, Interpolations.eInterpolation interpolation, IInterpolatorBase interolatorCore) { CoroutineInterpolatorInternal interpolator = new CoroutineInterpolatorInternal(onInterpolationComplate, interpolation, interolatorCore); interpolator.Init(time); while (interpolator.IsActive()) { yield return(new WaitForEndOfFrame()); interpolator.Update(Time.deltaTime); } }
IEnumerator InterpolProc(float time, Action onInterpolationComplate, Interpolations.eInterpolation interpolation, IInterpolatorBase interolatorCore) { CoroutineInterpolatorInternal interpolator = _coroutineInterpolatorInternal = new CoroutineInterpolatorInternal(onInterpolationComplate, interpolation, interolatorCore); interpolator.Init(time); while (interpolator.IsActive()) { if (_timeType != eTime.TIME_FIXED) { yield return(new WaitForEndOfFrame()); } else { yield return(new WaitForFixedUpdate()); } if (_coroutineInterpolatorInternal != interpolator) { yield break; } float time_ = 0.0f; switch (_timeType) { case eTime.TIME_SCALED: time_ = Time.deltaTime; break; case eTime.TIME_UNSCALED: time_ = Time.unscaledDeltaTime; break; case eTime.TIME_FIXED: time_ = Time.fixedDeltaTime; break; default: time_ = 0.0f; break; } interpolator.Update(time_ * _timeScale); } }