private void Init() { var blur = CreateChild <BlurDisplay>("blur", 0); { blur.Anchor = AnchorType.Fill; blur.Offset = Offset.Zero; var dark = blur.CreateChild <UguiSprite>("dark", 0); { dark.Anchor = AnchorType.Fill; dark.Offset = Offset.Zero; dark.Color = new Color(0f, 0f, 0f, 0.75f); } } infoDisplayer = CreateChild <InfoDisplayer>("info", 1); { } loadIndicator = CreateChild <LoadIndicator>("load", 2); { loadIndicator.Position = new Vector3(0f, -260f); loadIndicator.Size = new Vector2(88f, 88f); } float showDur = Mathf.Max(infoDisplayer.ShowAniDuration, loadIndicator.ShowAniDuration); componentShowAni = new Anime(); componentShowAni.AddEvent(0f, () => { infoDisplayer.Show(); loadIndicator.Show(); }); componentShowAni.AddEvent(showDur + model.MinimumLoadTime, OnShowAniEnd); float hideDur = Mathf.Max(infoDisplayer.HideAniDuration, loadIndicator.HideAniDuration); componentHideAni = new Anime(); componentHideAni.AddEvent(0f, () => { infoDisplayer.Hide(); loadIndicator.Hide(); }); componentHideAni.AnimateFloat(v => model.MusicController.SetFade(v)) .AddTime(0f, 0.5f, EaseType.QuadEaseOut) .AddTime(hideDur, 0f) .Build(); componentHideAni.AddEvent(hideDur, () => { model.MusicController.SetFade(1f); OnHideAniEnd(); }); OnEnableInited(); }
private void Init() { canvasGroup = RawObject.AddComponent <CanvasGroup>(); notificationList = CreateChild <NotificationList>("notification-list"); { notificationList.Anchor = AnchorType.Fill; notificationList.Offset = Offset.Zero; notificationList.Scope = NotificationScope.Temporary; notificationList.OnDismiss += OnDismissed; } showAni = new Anime(); showAni.AddEvent(0f, () => Active = true); showAni.AnimateFloat(a => canvasGroup.alpha = a) .AddTime(0f, () => canvasGroup.alpha) .AddTime(0.25f, 1f) .Build(); hideAni = new Anime(); hideAni.AnimateFloat(a => canvasGroup.alpha = a) .AddTime(0f, () => canvasGroup.alpha) .AddTime(0.25f, 1f) .Build(); hideAni.AddEvent(hideAni.Duration, () => Active = false); OnEnableInited(); }
private void Init() { startupAnime = new Anime(); startupAnime.AnimateColor((color) => this.Glow.Color = color) .AddTime(0f, new Color(1f, 1f, 1f, 0f), EaseType.QuadEaseOut) .AddTime(0.1f, new Color(1f, 1f, 1f, 1f), EaseType.QuadEaseIn) .AddTime(1f, new Color(0f, 0f, 0f, 1f)) .Build(); startupAnime.AnimateColor((color) => this.Outer.Color = color) .AddTime(0f, new Color(1f, 1f, 1f, 0f), EaseType.QuadEaseOut) .AddTime(0.1f, new Color(1f, 1f, 1f, 1f), EaseType.QuadEaseIn) .AddTime(1f, new Color(0.25f, 0.25f, 0.25f, 1f)) .Build(); startupAnime.AnimateColor((color) => this.Inner.Color = color) .AddTime(0.1f, new Color(1f, 1f, 1f, 0f), EaseType.QuadEaseIn) .AddTime(1f, new Color(0.25f, 0.25f, 0.25f, 1f)) .Build(); startupAnime.AnimateColor((color) => this.Title.Color = color) .AddTime(0.5f, new Color(), EaseType.QuartEaseIn) .AddTime(1f, new Color(0.75f, 0.75f, 0.75f, 1f)) .Build(); startupAnime.AddEvent(startupAnime.Duration, () => OnStartup?.Invoke()); breatheAnime = new Anime(); breatheAnime.WrapMode = WrapModeType.Loop; breatheAnime.AnimateColor((color) => this.Glow.Color = color) .AddTime(0f, Color.black, EaseType.SineEaseOut) .AddTime(1.1f, Color.gray, EaseType.SineEaseIn) .AddTime(2.2f, Color.black) .Build(); breatheAnime.AnimateColor((color) => this.Title.Color = color) .AddTime(0f, new Color(0.75f, 0.75f, 0.75f, 1f), EaseType.SineEaseOut) .AddTime(1.1f, Color.white, EaseType.SineEaseIn) .AddTime(2.2f, new Color(0.75f, 0.75f, 0.75f, 1f)) .Build(); endAnime = new Anime(); endAnime.AnimateColor((color) => this.Glow.Color = color) .AddTime(0f, () => this.Glow.Color, EaseType.QuartEaseIn) .AddTime(1.5f, Color.white) .Build(); endAnime.AnimateColor((color) => this.Outer.Color = color) .AddTime(0f, () => this.Outer.Color, EaseType.QuartEaseIn) .AddTime(1.5f, Color.white) .Build(); endAnime.AnimateColor((color) => this.Inner.Color = color) .AddTime(0f, () => this.Inner.Color, EaseType.QuartEaseIn) .AddTime(1.5f, Color.white) .Build(); endAnime.AnimateColor((color) => this.Title.Color = color) .AddTime(0f, () => this.Title.Color, EaseType.QuartEaseIn) .AddTime(1.5f, Color.white) .Build(); endAnime.AnimateVector3((scale) => this.Scale = scale) .AddTime(0f, Vector3.one, EaseType.SineEaseOut) .AddTime(1.5f, new Vector3(1.1f, 1.1f, 1.1f)) .Build(); endAnime.AddEvent(endAnime.Duration, () => OnEnd?.Invoke()); }
private void Init() { titleLabel = CreateChild <Label>("title", 0); { titleLabel.FontSize = 22; titleLabel.IsBold = true; titleLabel.Alpha = 0; } artistLabel = CreateChild <Label>("artist", 1); { artistLabel.FontSize = 16; artistLabel.Alpha = 0; } versionLabel = CreateChild <Label>("version", 2); { versionLabel.FontSize = 20; versionLabel.Alpha = 0; } mapperLabel = CreateChild <Label>("mapper", 3); { mapperLabel.FontSize = 16; mapperLabel.Alpha = 0; } thumbDisplayer = CreateChild <ThumbDisplayer>("thumb", 4); { thumbDisplayer.Size = new Vector2(400f, 72f); thumbDisplayer.Alpha = 0; } showAni = new Anime(); AddShowAniFrame(titleLabel, 0.3f, new Vector2(0f, 112f)); AddShowAniFrame(artistLabel, 0.4f, new Vector2(0f, 88f)); AddShowAniFrame(thumbDisplayer, 0.5f, new Vector2(0f, 16f)); AddShowAniFrame(versionLabel, 0.6f, new Vector2(0f, -60f)); AddShowAniFrame(mapperLabel, 0.7f, new Vector2(0f, -86f)); hideAni = new Anime(); hideAni.AddEvent(0f, () => showAni.Stop()); AddHideAniFrame(titleLabel, 0f); AddHideAniFrame(artistLabel, 0.1f); AddHideAniFrame(thumbDisplayer, 0.2f); AddHideAniFrame(versionLabel, 0.3f); AddHideAniFrame(mapperLabel, 0.4f); OnEnableInited(); }
private void Init() { SpriteName = "glow-in-square-32"; ImageType = Image.Type.Sliced; RotationZ = 45f; AddEffect(new AdditiveShaderEffect()); anime = new Anime(); anime.AnimateFloat((alpha) => this.Alpha = alpha) .AddTime(0f, 0f, EaseType.QuadEaseOut) .AddTime(0.1f, 1f, EaseType.QuadEaseIn) .AddTime(0.25f, 0f) .Build(); anime.AnimateVector2((size) => this.Size = size) .AddTime(0f, new Vector2(PulseStartSize, PulseStartSize), EaseType.CubicEaseOut) .AddTime(0.25f, new Vector2(PulseFullSize, PulseFullSize)) .Build(); anime.AddEvent(anime.Duration, () => Recycler.Return(this)); }
private void Init() { tickSprite = CreateChild <UguiSprite>("tick", 0); { tickSprite.Anchor = AnchorType.Fill; tickSprite.Offset = Offset.Zero; tickSprite.SpriteName = "circle-32"; } hitAni = new Anime(); hitAni.AnimateFloat(a => this.Alpha = a) .AddTime(0f, 1f, EaseType.QuadEaseOut) .AddTime(0.5f, 0f) .Build(); hitAni.AnimateVector3(s => this.Scale = s) .AddTime(0f, Vector3.one, EaseType.CubicEaseOut) .AddTime(0.5f, new Vector3(2.5f, 2.5f, 1f)) .Build(); hitAni.AddEvent(hitAni.Duration, () => Active = false); }
private void Init(IColorPreset colorPreset) { showAni = new Anime(); showAni.AnimateFloat(a => this.Alpha = a) .AddTime(1.5f, 0f, EaseType.QuadEaseOut) .AddTime(1.75f, 1f) .Build(); showAni.AnimateFloat(scale => Scale = new Vector3(scale, scale, 1f)) .AddTime(0f, 1f) .AddTime(1.5f, 2f, EaseType.QuadEaseOut) .AddTime(1.75f, 1f) .Build(); hideAni = new Anime(); hideAni.AddEvent(0f, () => showAni.Stop()); hideAni.AnimateFloat(a => this.Alpha = a) .AddTime(0f, 1f, EaseType.QuadEaseOut) .AddTime(0.5f, 0f) .Build(); Rotate = true; }
private void Init() { // Make the menu fit within the parent's object. Anchor = AnchorType.Fill; Offset = Offset.Zero; var blocker = CreateChild <Blocker>("blocker", 0); { blocker.OnTriggered += CloseMenu; } holder = CreateChild("holder", 1); { holder.Size = new Vector2(ContainerWidth, 0f); aniHolder = holder.CreateChild("ani-holder", 0); { aniHolder.Anchor = AnchorType.Fill; aniHolder.Offset = Offset.Zero; canvasGroup = aniHolder.RawObject.AddComponent <CanvasGroup>(); canvasGroup.alpha = 0f; shadow = aniHolder.CreateChild <UguiSprite>("shadow", 0); { shadow.Anchor = AnchorType.Fill; shadow.Offset = new Offset(-7f); shadow.SpriteName = "glow-circle-16"; shadow.ImageType = Image.Type.Sliced; shadow.Color = Color.black; } listContainer = aniHolder.CreateChild <UguiListView>("list", 1); { listContainer.Anchor = AnchorType.Fill; listContainer.Offset = Offset.Zero; listContainer.Background.SpriteName = "circle-16"; listContainer.Background.ImageType = Image.Type.Sliced; listContainer.Background.Color = new Color(0f, 0f, 0f, 0.75f); listContainer.Initialize(OnCreateMenuItem, OnUpdateMenuItem); listContainer.CellSize = ItemSize; listContainer.Corner = GridLayoutGroup.Corner.UpperLeft; listContainer.Axis = GridLayoutGroup.Axis.Vertical; } } } showAni = new Anime(); showAni.AddEvent(0f, () => Active = true); showAni.AnimateFloat(a => canvasGroup.alpha = a) .AddTime(0f, () => canvasGroup.alpha) .AddTime(0.25f, 1f) .Build(); showAni.AnimateFloat(y => aniHolder.Y = y) .AddTime(0f, MoveAniAmount, EaseType.QuadEaseOut) .AddTime(0.25f, 0f) .Build(); hideAni = new Anime(); hideAni.AnimateFloat(a => canvasGroup.alpha = a) .AddTime(0f, () => canvasGroup.alpha) .AddTime(0.25f, 0f) .Build(); hideAni.AnimateFloat(y => aniHolder.Y = y) .AddTime(0f, 0f, EaseType.QuadEaseOut) .AddTime(0.25f, MoveAniAmount) .Build(); hideAni.AddEvent(hideAni.Duration, () => { OnHidden?.Invoke(this); Active = false; }); }
private void Init() { container = CreateChild <UguiObject>("container", 0); { container.Anchor = AnchorType.TopStretch; container.Pivot = PivotType.Top; container.Y = 0f; container.SetOffsetHorizontal(0f); container.Height = FoldedHeight; providerContainer = container.CreateChild <ProviderContainer>("provider", 1); { providerContainer.Anchor = AnchorType.TopStretch; providerContainer.Pivot = PivotType.Top; providerContainer.SetOffsetHorizontal(0f); providerContainer.Y = 0f; providerContainer.Height = ProviderControllerHeight; } bannerContainer = container.CreateChild <BannerContainer>("banner", 0); { bannerContainer.Anchor = AnchorType.Fill; bannerContainer.Offset = new Offset(0f, 54f, 0f, 96f); bannerContainer.IsInteractible = false; } searchBarContainer = container.CreateChild <SearchBarContainer>("search-bar", 2); { searchBarContainer.Anchor = AnchorType.BottomStretch; searchBarContainer.Pivot = PivotType.Bottom; searchBarContainer.SetOffsetHorizontal(0f); searchBarContainer.Y = 0f; searchBarContainer.Height = SearchBarHeight; searchBarContainer.AdvancedButton.OnTriggered += OnAdvancedButton; } } shadowButton = CreateChild <ShadowButton>("shadow", 1); { shadowButton.Anchor = AnchorType.Fill; shadowButton.Offset = new Offset(0f, FoldedHeight, 0f, 0f); shadowButton.Active = false; shadowButton.Alpha = 0f; shadowButton.OnTriggered += OnShadowButton; } scrollTopButton = CreateChild <ScrollTopButton>("scroll-button", 2); { scrollTopButton.Anchor = AnchorType.Bottom; scrollTopButton.Y = -28f; scrollTopButton.Size = new Vector2(120f, 24f); scrollTopButton.Active = false; scrollTopButton.OnTriggered += OnScrollTopButton; } foldAni = new Anime(); foldAni.AddEvent(0f, () => bannerContainer.IsInteractible = false); foldAni.AnimateFloat(h => { container.Height = h; shadowButton.SetOffsetTop(h); bannerContainer.AdjustBannerTexture(); }) .AddTime(0f, () => container.Height) .AddTime(0.25f, FoldedHeight) .Build(); foldAni.AnimateFloat(a => shadowButton.Alpha = a) .AddTime(0f, () => shadowButton.Alpha) .AddTime(0.25f, 0f) .Build(); foldAni.AddEvent(0f, () => shadowButton.Active = false); unfoldAni = new Anime(); unfoldAni.AddEvent(0f, () => shadowButton.Active = true); unfoldAni.AnimateFloat(h => { container.Height = h; shadowButton.SetOffsetTop(h); bannerContainer.AdjustBannerTexture(); }) .AddTime(0f, () => container.Height) .AddTime(0.25f, UnfoldedHeight) .Build(); unfoldAni.AnimateFloat(a => shadowButton.Alpha = a) .AddTime(0f, () => shadowButton.Alpha) .AddTime(0.25f, 0.5f) .Build(); unfoldAni.AddEvent(unfoldAni.Duration, () => bannerContainer.IsInteractible = true); scrollButtonShowAni = new Anime(); scrollButtonShowAni.AddEvent(0f, () => scrollTopButton.Active = true); scrollButtonShowAni.AnimateFloat((i) => { scrollTopButton.Alpha = Easing.Linear(i, 0f, 1f, 0f); scrollTopButton.Y = Easing.Linear(i, 0f, 28f, 0f); }).AddTime(0f, 0f, EaseType.BackEaseOut) .AddTime(0.25f, 1f) .Build(); scrollButtonHideAni = new Anime(); scrollButtonHideAni.AnimateFloat((i) => { scrollTopButton.Alpha = Easing.Linear(i, 1f, -1f, 0f); scrollTopButton.Y = Easing.Linear(i, 28f, -28f, 0f); }).AddTime(0f, 0f, EaseType.SineEaseOut) .AddTime(0.25f, 1f) .Build(); scrollButtonHideAni.AddEvent(scrollButtonHideAni.Duration, () => scrollTopButton.Active = false); OnEnableInited(); }
private void Init() { background = CreateChild <UguiSprite>("background", 1); { background.Anchor = AnchorType.Fill; background.Offset = Offset.Zero; background.Color = ColorPreset.Background; } mask = CreateChild <UguiSprite>("mask", 3); { mask.Anchor = AnchorType.Fill; mask.RawSize = Vector2.zero; mask.Position = Vector2.zero; mask.SpriteName = "box"; var maskEffect = mask.AddEffect(new MaskEffect()); maskEffect.Component.showMaskGraphic = false; loggedInView = mask.CreateChild <LoggedInView>("logged-in", 0); { loggedInView.Anchor = AnchorType.Fill; loggedInView.Offset = Offset.Zero; } loggedOutView = mask.CreateChild <LoggedOutView>("logged-out", 0); { loggedOutView.Anchor = AnchorType.Fill; loggedOutView.Offset = Offset.Zero; loggedOutView.CurLoginView.OnNewValue += OnLoginProviderViewChange; } } blocker = CreateChild <Blocker>("blocker", 4); loggedInAni = new Anime(); loggedInAni.AnimateFloat(alpha => loggedInView.Alpha = alpha) .AddTime(0f, () => loggedInView.Alpha) .AddTime(0.25f, 1f) .Build(); loggedInAni.AnimateFloat(alpha => loggedOutView.Alpha = alpha) .AddTime(0f, () => loggedOutView.Alpha) .AddTime(0.25f, 0f) .Build(); loggedInAni.AnimateFloat(height => this.Height = height) .AddTime(0f, () => this.Height) .AddTime(0.25f, LoggedInHeight) .Build(); loggedInAni.AddEvent(0f, () => loggedInView.Active = blocker.Active = true); loggedInAni.AddEvent(loggedInAni.Duration, () => loggedOutView.Active = blocker.Active = false); loggedOutAni = new Anime(); loggedOutAni.AnimateFloat(alpha => loggedInView.Alpha = alpha) .AddTime(0f, () => loggedInView.Alpha) .AddTime(0.25f, 0f) .Build(); loggedOutAni.AnimateFloat(alpha => loggedOutView.Alpha = alpha) .AddTime(0f, () => loggedOutView.Alpha) .AddTime(0.25f, 1f) .Build(); loggedOutAni.AnimateFloat(height => this.Height = height) .AddTime(0f, () => this.Height) .AddTime(0.25f, () => loggedOutView.DesiredHeight) .Build(); loggedOutAni.AddEvent(0f, () => loggedOutView.Active = blocker.Active = true); loggedOutAni.AddEvent(loggedInAni.Duration, () => loggedInView.Active = blocker.Active = false); OnEnableInited(); }
private void Init() { Width = 0f; isTriggered.Bind(OnTriggeredChange); buttonTrigger = CreateChild <BasicTrigger>("trigger"); { buttonTrigger.IsClickToTrigger = false; buttonTrigger.Anchor = AnchorType.CenterStretch; buttonTrigger.Width = 36f; buttonTrigger.SetOffsetVertical(0f); buttonTrigger.OnPointerDown += () => isTriggered.Value = true; buttonTrigger.OnPointerUp += () => isTriggered.Value = false; var bg = buttonTrigger.CreateChild <UguiSprite>("bg"); { bg.Anchor = AnchorType.CenterStretch; bg.SetOffsetVertical(0f); bg.Width = 8f; bg.Color = new Color(1f, 1f, 1f, 0.25f); bg.SpriteName = "circle-8"; bg.ImageType = Image.Type.Sliced; } } indicatorContainer = CreateChild <UguiObject>("container"); { indicatorContainer.Anchor = AnchorType.CenterStretch; indicatorContainer.Width = 0; indicatorContainer.SetOffsetVertical(0f); indicatorCanvas = indicatorContainer.RawObject.AddComponent <CanvasGroup>(); indicatorCanvas.alpha = 0f; shadowSprite = indicatorContainer.CreateChild <UguiSprite>("shadow"); { shadowSprite.Anchor = AnchorType.Fill; shadowSprite.Offset = new Offset(0f, 9f, 0f, -9f); shadowSprite.Color = ColorPreset.Passive.Darken(0.5f); shadowSprite.SpriteName = "parallel-64"; shadowSprite.ImageType = Image.Type.Sliced; shadowFlipEffect = shadowSprite.AddEffect(new FlipEffect()); } bgSprite = indicatorContainer.CreateChild <UguiSprite>("bg"); { bgSprite.Anchor = AnchorType.Fill; bgSprite.Offset = Offset.Zero; bgSprite.Color = ColorPreset.Passive; bgSprite.SpriteName = "parallel-64"; bgSprite.ImageType = Image.Type.Sliced; bgFlipEffect = bgSprite.AddEffect(new FlipEffect()); } iconSprite = indicatorContainer.CreateChild <UguiSprite>("icon"); { iconSprite.Y = 0f; iconSprite.Size = new Vector2(24f, 24f); iconSprite.SpriteName = "icon-pause"; iconSprite.Color = ColorPreset.PrimaryFocus; } indicatorContainer.Active = false; } showAni = new Anime(); showAni.AddEvent(0f, () => indicatorContainer.Active = true); showAni.AnimateFloat((width) => indicatorContainer.Width = width) .AddTime(0f, 0, EaseType.BackEaseOut) .AddTime(0.25f, 196f) .Build(); showAni.AnimateFloat((alpha) => indicatorCanvas.alpha = alpha) .AddTime(0f, () => indicatorCanvas.alpha) .AddTime(0.25f, 1f) .Build(); hideAni = new Anime(); hideAni.AnimateFloat((width) => indicatorContainer.Width = width) .AddTime(0f, 196f, EaseType.CubicEaseIn) .AddTime(0.25f, 0f) .Build(); hideAni.AnimateFloat((alpha) => indicatorCanvas.alpha = alpha) .AddTime(0f, () => indicatorCanvas.alpha) .AddTime(0.25f, 0f) .Build(); hideAni.AddEvent(hideAni.Duration, () => indicatorContainer.Active = false); }