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(); }
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)); }
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); } }