///<summary> /// This method kicks off the process. ///</summary> public void StartTween(TweenDelegate tweenDelegate, int srcX, int srcY, int destX, int destY, TweenAnimation animType, int timeInterval) { if (tweenDelegate == null) { return; } if (fBusy) { StopTween(); } fBusy = true; fTweenDelegate = tweenDelegate; fCounter = 0; fTimeStart = fCounter; fTimeDest = timeInterval; fAnimation = animType; fStartX = srcX; fStartY = srcY; fCurX = srcX; fCurY = srcY; fDestX = destX; fDestY = destY; fTimer.Start(); }
public void AddAnimationToQueue(Tween animation, bool disableGameObjectAfter = false) { TweenAnimation tweenAnimation = new TweenAnimation(animation.Pause(), disableGameObjectAfter); animationQueue.Enqueue(tweenAnimation); // Debug.Log("add" + this.GetInstanceID().ToString()); }
public void CompleteTestBackward() { bool completed = false; TweenAnimation <float> tween = new TweenAnimation <float>() { From = -0.239572048f, To = 1.2223f, Duration = TimeSpan.FromSeconds(2.34123f), }; tween.Completed += (o, e) => { completed = true; }; tween.StartupDirection = AnimationDirection.Backward; ((IAnimation)tween).OnStarted(); tween.Update(0.34234f); tween.Update(1.284957f); tween.Update(0.0001479f); tween.Update(2.38562939f); Assert.IsTrue(completed); Assert.AreEqual <TimeSpan>(TimeSpan.Zero, tween.Position); Assert.AreEqual <TimeSpan>(tween.Duration, tween.ElapsedTime); Assert.AreEqual <float>(tween.From.Value, tween.Value); }
public void Play(TweenAnimation animation) { foreach (GeneratedAnimation anim in generatedAnimations) { if (anim.Name == animation.name) { anim.Play(); return; } } Debug.LogWarning("Cant find animation named '" + animation.name + "' !"); }
IEnumerator PlayNextAnimation() { GameObject templateInstance = HandManager.FindTemplateInstance(actionGroup); // templateInstance.SetActive(true); playingAnimation = true; TweenAnimation tweenAnimation = animationQueue.Dequeue(); tweenAnimation.tween.Play(); yield return(tweenAnimation.tween.WaitForCompletion()); playingAnimation = false; // templateInstance.SetActive(!tweenAnimation.disableGameObjectAfter); }
public void CompleteTestWithZeroDuration() { bool completed = false; TweenAnimation <float> tween = new TweenAnimation <float>() { From = -1, To = 1, Duration = TimeSpan.Zero, }; tween.Completed += (o, e) => { completed = true; }; ((IAnimation)tween).OnStarted(); tween.Update(0.34234f); Assert.IsTrue(completed); Assert.AreEqual <TimeSpan>(tween.Duration, tween.Position); Assert.AreEqual <TimeSpan>(tween.Duration, tween.ElapsedTime); Assert.AreEqual <float>(tween.From.Value, tween.Value); }
private void Awake() { m_tweenAnimation = FindObjectOfType <TweenAnimation>(); }
public void MoveTo(MoveInfo info, System.Action callback) { if (PegType != CreeperPegType.Possible) { ParticleEmitter emitter = (ParticleEmitter)Parent.Find<ParticleEffect>().Emitter; emitter.Duration = 1f; float newDirectionRadian = (float)Math.Atan2(-(info.EndPoint.X - Parent.Transform.Translation.X), -(info.EndPoint.Z - Parent.Transform.Translation.Z)); Parent.Transform = Matrix.CreateRotationY(newDirectionRadian) * Matrix.CreateTranslation(Parent.Transform.Translation); TweenAnimation<Matrix> moveAnimation = new TweenAnimation<Matrix> { Target = Parent, TargetProperty = "Transform", Duration = TimeSpan.FromSeconds(1), From = Parent.Transform, To = Matrix.CreateRotationY(newDirectionRadian) * Matrix.CreateTranslation(info.EndPoint), Curve = Curves.Smooth, }; moveAnimation.Completed += new EventHandler((s, e) => { _pegModel.Animations["Run"].Stop(); _pegModel.Animations.Play("Idle"); Parent.Animations.Remove(Resources.AnimationNames.PegMove); _graphicalPosition = info.EndPoint; Position = info.Position; emitter.Duration = 0f; callback(); }); if (info.Type != MoveType.PegJump) { Parent.Animations.Add("move", moveAnimation); Parent.Animations.Play("move"); if (_pegModel != null) _pegModel.Animations.Play("Run"); } else { Vector3 distance = info.EndPoint - Parent.Transform.Translation; distance /= 1.4f; Parent.Transform = Matrix.CreateRotationY(newDirectionRadian) * Matrix.CreateTranslation(Parent.Transform.Translation); TweenAnimation<Matrix> killAnimation = new TweenAnimation<Matrix> { Target = Parent, TargetProperty = "Transform", Duration = TimeSpan.FromSeconds(1), From = Parent.Transform, To = Matrix.CreateRotationY(newDirectionRadian) * Matrix.CreateTranslation(info.EndPoint - distance), Curve = Curves.Smooth, }; killAnimation.Completed += new EventHandler((s, e) => { _pegModel.Animations["Chop"].Stop(); _pegModel.Animations["Attack"].Stop(); Parent.Animations.Remove("kill"); moveAnimation.From = Parent.Transform; if (info.JumpedPeg != null) { info.JumpedPeg.Die(); } _pegModel.Animations.Play("Run"); Parent.Animations.Play("move"); _graphicalPosition = info.EndPoint; Position = info.Position; }); Parent.Animations.Add("move", moveAnimation); Parent.Animations.Add("kill", killAnimation); Parent.Animations.Play("kill"); int nextValue = r.Next(2); if (nextValue == 0) { _pegModel.Animations.Play("Attack"); } else { _pegModel.Animations.Play("Chop"); } } } }