private void Init()
        {
            glowSprite = CreateChild <UguiSprite>("glow");
            {
                glowSprite.Size            = new Vector2(BaseSize + GlowSizeOffset, BaseSize + GlowSizeOffset);
                glowSprite.SpriteName      = "glow-square-32";
                glowSprite.ImageType       = Image.Type.Sliced;
                glowSprite.Color           = ColorPreset.SecondaryFocus;
                glowSprite.RotationZ       = 45f;
                glowSprite.IsRaycastTarget = false;
            }
            fillSprite = CreateChild <UguiSprite>("fill");
            {
                fillSprite.Anchor          = AnchorType.Fill;
                fillSprite.Offset          = Offset.Zero;
                fillSprite.Color           = ColorPreset.SecondaryFocus;
                fillSprite.RotationZ       = 45f;
                fillSprite.IsRaycastTarget = false;

                fillSprite.AddEffect(new AdditiveShaderEffect());
            }

            showAni = new Anime();
            showAni.AnimateFloat((alpha) => glowSprite.Alpha = alpha)
            .AddTime(0f, 0f)
            .AddTime(0.05f, 0f, EaseType.QuadEaseOut)
            .AddTime(0.15f, 1f)
            .Build();
            showAni.AnimateFloat((alpha) => fillSprite.Alpha = alpha)
            .AddTime(0f, 0.85f, EaseType.QuadEaseOut)
            .AddTime(0.15f, 0.25f)
            .Build();
            showAni.AnimateVector2((size) => fillSprite.Size = size)
            .AddTime(0f, new Vector2(BaseSize + ShowShrinkSize, BaseSize + ShowShrinkSize), EaseType.CubicEaseOut)
            .AddTime(0.15f, new Vector2(BaseSize, BaseSize))
            .Build();
            showAni.AddEvent(showAni.Duration, () => repeatAni.PlayFromStart());

            hideAni = new Anime();
            hideAni.AddEvent(0f, () => repeatAni.Pause());
            hideAni.AnimateFloat((alpha) => glowSprite.Alpha = alpha)
            .AddTime(0f, () => glowSprite.Alpha)
            .AddTime(0.25f, 0f)
            .Build();
            hideAni.AnimateFloat((alpha) => fillSprite.Alpha = alpha)
            .AddTime(0f, () => fillSprite.Alpha)
            .AddTime(0.25f, 0f)
            .Build();
            hideAni.AddEvent(hideAni.Duration, () => Recycler.Return(this));

            repeatAni = new Anime()
            {
                WrapMode = WrapModeType.Loop,
            };
            repeatAni.AnimateFloat((alpha) => fillSprite.Alpha = alpha)
            .AddTime(0f, 0.25f, EaseType.QuadEaseOut)
            .AddTime(0.4f, 0.75f, EaseType.QuadEaseIn)
            .AddTime(0.8f, 0.25f)
            .Build();
        }
Example #2
0
        protected override IAnime CreateShowAnime(IDependencyContainer dependencies)
        {
            var anime = new Anime();

            anime.AnimateFloat(a => darkSprite.Alpha = a)
            .AddTime(0f, 0f)
            .AddTime(2f, 1f)
            .AddTime(2.5f, 1f)
            .Build();
            anime.AddEvent(anime.Duration, () => model.Quit());
            return(anime);
        }
        private void Init()
        {
            SpriteName      = "glow-128";
            IsRaycastTarget = false;
            Alpha           = 0f;
            AddEffect(new AdditiveShaderEffect());

            effectAni = new Anime()
            {
                StopMode = StopModeType.None
            };
            effectAni.AnimateVector2(s => this.Size = s)
            .AddTime(0f, Vector2.zero, EaseType.CubicEaseOut)
            .AddTime(0.25f, () => new Vector2(targetWidth, 8000))
            .Build();
            effectAni.AnimateFloat(a => this.Alpha = a)
            .AddTime(0f, 1f, EaseType.QuadEaseIn)
            .AddTime(0.25f, 0f)
            .Build();
            effectAni.AddEvent(effectAni.Duration, () => Recycler.Return(this));
        }
Example #4
0
        public IEnumerator Test()
        {
            var dependencies = new DependencyContainer();

            dependencies.CacheAs <IDependencyContainer>(dependencies);
            dependencies.CacheAs <IAtlas <Sprite> >(new ResourceSpriteAtlas());

            var env  = GraphicTestEnvironment.Create();
            var root = env.CreateRoot(dependencies);

            var sprite = root.CreateChild <UguiSprite>("sprite");

            sprite.Size = new Vector2(20f, 20f);

            var anime = new Anime();

            anime.AnimateFloat(value => sprite.X = value)
            .AddTime(0f, 0f, Utils.EaseType.QuadEaseOut)
            .AddTime(1f, 200f, Utils.EaseType.Linear)
            .AddTime(2f, 200f, Utils.EaseType.QuadEaseOut)
            .AddTime(3f, 400f)
            .Build();
            Assert.AreEqual(3f, anime.Duration, Delta);

            anime.AddEvent(0f, () => Debug.Log("Event 0"));
            anime.AddEvent(1f, () => Debug.Log("Event 1"));
            anime.AddEvent(2f, () => Debug.Log("Event 2"));
            anime.AddEvent(3f, () => Debug.Log("Event 3"));
            anime.AddEvent(4f, () => Debug.Log("Event 4"));
            Assert.AreEqual(4f, anime.Duration, Delta);

            while (env.IsRunning)
            {
                if (Input.GetKeyDown(KeyCode.Q))
                {
                    anime.Play();
                    Assert.IsTrue(anime.IsPlaying);
                }
                if (Input.GetKeyDown(KeyCode.W))
                {
                    anime.PlayFromStart();
                    Assert.IsTrue(anime.IsPlaying);
                }
                if (Input.GetKeyDown(KeyCode.E))
                {
                    anime.Pause();
                    Assert.IsFalse(anime.IsPlaying);
                }
                if (Input.GetKeyDown(KeyCode.R))
                {
                    anime.Stop();
                    Assert.IsFalse(anime.IsPlaying);
                }

                if (Input.GetKeyDown(KeyCode.BackQuote))
                {
                    anime.Seek(0f);
                    Assert.AreEqual(0f, anime.Time, Delta);
                }
                if (Input.GetKeyDown(KeyCode.Alpha1))
                {
                    anime.Seek(1f);
                    Assert.AreEqual(1f, anime.Time, Delta);
                }
                if (Input.GetKeyDown(KeyCode.Alpha2))
                {
                    anime.Seek(2f);
                    Assert.AreEqual(2f, anime.Time, Delta);
                }
                if (Input.GetKeyDown(KeyCode.Alpha3))
                {
                    anime.Seek(3f);
                    Assert.AreEqual(3f, anime.Time, Delta);
                }
                if (Input.GetKeyDown(KeyCode.Alpha4))
                {
                    anime.Seek(4f);
                    Assert.AreEqual(4f, anime.Time, Delta);
                }

                if (Input.GetKeyDown(KeyCode.Equals))
                {
                    anime.Speed += 0.25f;
                }
                else if (Input.GetKeyDown(KeyCode.Minus))
                {
                    anime.Speed -= 0.25f;
                }

                if (Input.GetKeyDown(KeyCode.A))
                {
                    anime.WrapMode = WrapModeType.None;
                    Debug.Log("Wrapmode set to none");
                }
                if (Input.GetKeyDown(KeyCode.S))
                {
                    anime.WrapMode = WrapModeType.Reset;
                    Debug.Log("Wrapmode set to reset");
                }
                if (Input.GetKeyDown(KeyCode.D))
                {
                    anime.WrapMode = WrapModeType.Loop;
                    Debug.Log("Wrapmode set to loop");
                }

                if (Input.GetKeyDown(KeyCode.F))
                {
                    anime.StopMode = StopModeType.None;
                    Debug.Log("Stopmode set to none");
                }
                if (Input.GetKeyDown(KeyCode.G))
                {
                    anime.StopMode = StopModeType.Reset;
                    Debug.Log("Stopmode set to reset");
                }
                if (Input.GetKeyDown(KeyCode.H))
                {
                    anime.StopMode = StopModeType.End;
                    Debug.Log("Stopmode set to end");
                }
                yield return(null);
            }
        }