public float Update() { if (finished) { return(value); } var deltaTime = Time.deltaTime; if (respectTimeScale) { deltaTime *= Find.TickManager.TickRateMultiplier; } elapsedTime += deltaTime; if (elapsedTime >= duration) { elapsedTime = duration; value = targetValue; finished = true; callback?.Invoke(this, value, duration, curve); } else { value = initialValue + curve(elapsedTime / duration) * (targetValue - initialValue); } return(value); }
public void Execute(object parameter) { Executing = true; _action(parameter).ContinueWith((task) => { Executing = false; FinishedCallback?.Invoke(); }); }
public void Execute(object parameter) { if (!CanExecute(parameter)) { return; } Executing = true; _action(parameter).ContinueWith(task => { Executing = false; FinishedCallback?.Invoke(); }); }