public async UniTask Show()
        {
            await AnimationRunner.Run((t) => { _canvasGroup.alpha = t; }, duration);

            _canvasGroup.alpha          = 1f;
            _canvasGroup.blocksRaycasts = true;
        }
Пример #2
0
        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;
        }
Пример #3
0
    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>();
    }
Пример #4
0
        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;
        }
Пример #5
0
        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();
            }
        }
Пример #6
0
        /// <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);
        }