public async UniTask Show() { await AnimationRunner.Run((t) => { _canvasGroup.alpha = t; }, duration); _canvasGroup.alpha = 1f; _canvasGroup.blocksRaycasts = true; }
private async UniTask EraseElementAnimation() { await AnimationRunner.Run( (t) => { _elementImage.color = Color.Lerp(Color.white, Color.clear, Mathf.SmoothStep(0f, 1f, t)); }, duration); _elementImage.color = Color.clear; }
public Animation(AnimationType inType, int inputNumber, GameObject parent, Vector3 translation, Vector3 scale) { this.type = inType; this.animationObject = new GameObject("Ani Type: " + inType.ToString()); this.animationObject.transform.parent = parent.transform; this.animationObject.transform.localPosition = translation; this.animationObject.transform.localScale = scale; this.animationRunner = this.animationObject.AddComponent <AnimationRunner>(); }
private async UniTask EraseElementAnimation() { await AnimationRunner.Run((_) => { }, duration / 10); await AnimationRunner.Run( (t) => { _elementImage.color = Color.Lerp(Color.white, Color.clear, t); }, duration); _elementImage.color = Color.clear; }
private async UniTask GoToMixPosition() { await AnimationRunner.Run( (t) => { transform.position = Vector3.Lerp(_initialPosition, _finalPosition, Mathf.SmoothStep(0f, 1f, t)); }, duration); Destroy(gameObject); if (_actionAfter != null) { await _actionAfter(); } }
/// <summary> /// Gets item a random frame id if item is a multiframe item /// Registers an animation runnter for the item, if it is animated /// </summary> /// <param name="variantBase">The base item of the specific item</param> /// <param name="tileX">X Position of the item</param> /// <param name="tileY">Y Position of the item</param> /// <param name="unitySprite">Sprite which is animated or multiframed</param> /// <returns>Current frame id to be used by the sprite</returns> private int SetupMultiFrameItem(VariantObjectBase variantBase, int tileX, int tileY, SpriteRenderer unitySprite) { if (!variantBase.IsAnimated) { return(variantBase.GetFrameId(MapVariance.GetItemFrameVariance(tileX, tileY, variantBase.FrameCount))); } if (!animationRunners.TryGetValue(variantBase, out var animationRunner)) { animationRunner = new AnimationRunner(variantBase, variantBase.InitialId); animationRunners.Add(variantBase, animationRunner); } animationRunner.RegisterAnimatedSprite(unitySprite); return(variantBase.InitialId); }