public static NAnimation Fetch(ref NAnimationSettings settings, UnityEngine.Object owner = null) { var fetched = pool.Count > 0 ? pool.Dequeue() : new NAnimation(); fetched.Initialize(settings, owner); return(fetched); }
/// <summary> /// Add animation to the loop. /// </summary> public static NAnimation Animate(Object target, NAnimationSettings animationSettings) { var newAnimation = NAnimation.Pool.Fetch(ref animationSettings, target); Instance.animations.Add(newAnimation); return(newAnimation); }
internal void Initialize(NAnimationSettings settings, UnityEngine.Object owner = null) { this.settings = settings; progress = 0f; timeSinceStart = 0f; delay = settings.Delay; firstTickDone = false; stopped = false; isFinished = false; timeScale = 1f; RefreshCurveDuration(); if (owner != null) { this.target = owner; } }