private void TransitionMainText(SceneTransitionRequest str, Image anchorTarget) { var animGroup = new AnimGroup(); var textFadeOut = new FadeAnimation(PhraseText, Time.time, FadeOutDuration, FadeOutCurve, 0.0f); animGroup.AddAnimation(textFadeOut); var lastAnimFinish = textFadeOut.TimeEnd; var defaultTextBoxSize = new Vector2(anchorTarget.rectTransform.rect.width - 30, anchorTarget.rectTransform.rect.height - 35); var requiredHeight = GetDesiredTextHeight(PhraseText, str.TransitionPhrase, defaultTextBoxSize); if (PhraseBackground.rectTransform.anchoredPosition != anchorTarget.rectTransform.anchoredPosition || !Mathf.Approximately(requiredHeight, PhraseText.rectTransform.rect.height)) { var textBoxResize = new RectAnimation(PhraseBackground.rectTransform, textFadeOut.TimeEnd, TransitionDuration, TransitionCurve, anchorTarget.rectTransform); // Fixup for correct size textBoxResize.TargetSize.y = requiredHeight + 35; animGroup.AddAnimation(textBoxResize); lastAnimFinish = textBoxResize.TimeEnd; } var textChange = new SetTextAnimation(PhraseText, lastAnimFinish, str.TransitionPhrase); animGroup.AddAnimation(textChange); var textFadeIn = new FadeAnimation(PhraseText, lastAnimFinish, FadeInDuration, FadeInCurve, 1.0f); animGroup.AddAnimation(textFadeIn); _pendingAnimations.Enqueue(animGroup); }
public override void Execute() { base.Execute(); AnimGroup.AddAnimation(new Animation(CurrentAnimation.PixelTexture)); AnimGroup.AddNewTextField(new Vector2(36, 152 + ((AnimGroup.TextFont.LineSpacing + 2) * AnimGroup.Animations.Length)), "animation" + AnimGroup.Animations.Length); //animGroupTextFields = AddNewTextField(animGroupTextFields, new Vector2(36, 152 + ((consolas.LineSpacing + 2) * animGroup.Animations.Length)), "animation" + animGroup.Animations.Length); }
private void CreateChoices(SceneTransitionRequest str) { var animGroup = new AnimGroup(); var curTime = Time.time; if (_choiceButtons != null) { foreach (var btn in _choiceButtons) { Destroy(btn); } } _choiceButtons = new Button[str.TransitionChoices.Length]; for (int i = 0; i < str.TransitionChoices.Length; ++i) { var choiceButton = Instantiate <Button>(ChoiceButtonPrototype, UIContainer.transform); var choice = str.TransitionChoices[i]; choiceButton.gameObject.SetActive(true); var choiceButtonCG = choiceButton.GetComponent <CanvasGroup>(); choiceButtonCG.alpha = 0.0f; animGroup.AddAnimation(new FadeCGAnimation(choiceButtonCG, curTime + i * FadeInDuration, FadeInDuration, FadeInCurve, 1.0f)); choiceButton.image.rectTransform.anchoredPosition = ChoiceButtonPrototype.image.rectTransform.anchoredPosition + new Vector2(0.0f, -i * (ChoiceButtonPrototype.image.rectTransform.rect.height + 40)); choiceButton.onClick.AddListener(delegate { _choiceHandler(choice.ChoiceID); }); var choiceButtonText = choiceButton.GetComponentInChildren <Text>(); choiceButtonText.text = choice.ChoiceText; _choiceButtons[i] = choiceButton; } _pendingAnimations.Enqueue(animGroup); }
private void TransitionBackground(SceneTransitionRequest str) { var animGroup = new AnimGroup(); BackgroundTransition.sprite = _backgroundPool.GetBackgroundSprite(str.TransitionBackground.ToLower()); animGroup.AddAnimation(new FadeAnimation(BackgroundTransition, Time.time, FadeInDuration, FadeInCurve, 1.0f)) .AddAnimation(new SetSpriteAnimation(Background, Time.time + FadeInDuration, BackgroundTransition.sprite)) .AddAnimation(new FadeAnimation(BackgroundTransition, Time.time + FadeInDuration, 0.001f, FadeOutCurve, 0.0f)); _pendingAnimations.Enqueue(animGroup); }
public override void Execute() { base.Execute(); AnimGroup.RemoveAnimation(AnimGroup.Animations[AnimGroup.Animations.Length - 1]); AnimGroup.RemoveTextField(); if (AnimGroup.Animations.Length <= 0) { AnimGroup.AddAnimation(new Animation(CurrentAnimation.PixelTexture)); AnimGroup.AddNewTextField(new Vector2(36, 152 + ((AnimGroup.TextFont.LineSpacing + 2) * AnimGroup.Animations.Length)), "animation" + AnimGroup.Animations.Length); } }
// Animate actor group hiding private void HideActor() { // Account for floats being floats if (_actorGroup.alpha < 0.001f) { return; } var animGroup = new AnimGroup(); animGroup.AddAnimation(new FadeCGAnimation(_actorGroup, Time.time, FadeOutDuration, FadeOutCurve, 0.0f)); _pendingAnimations.Enqueue(animGroup); }
public override void Execute() { base.Execute(); Animation newAnim = new Animation(CurrentAnimation.PixelTexture); newAnim.Bounds = new Rectangle(AnimGroup.CurrentAnimation.Bounds.X, AnimGroup.CurrentAnimation.Bounds.Y, AnimGroup.CurrentAnimation.Bounds.Width, AnimGroup.CurrentAnimation.Bounds.Height); foreach (Frame frame in AnimGroup.CurrentAnimation.Frames) { newAnim.AddFrame(new Frame(frame, false, newAnim.Bounds.Center)); } AnimGroup.AddAnimation(newAnim); AnimGroup.AddNewTextField(new Vector2(36, 152 + ((AnimGroup.TextFont.LineSpacing + 2) * AnimGroup.Animations.Length)), "animation" + AnimGroup.Animations.Length); }
public void OnRunAnimation() { var target = Anchors[_currentAnchor]; _currentAnchor = (_currentAnchor + 1) % Anchors.Length; var animGroup = new AnimGroup(); animGroup.AddAnimation(new TextAnimation(0.3f, Time.time, 1.0f, 0.0f)) .AddAnimation(new RectAnimation(0.5f, Time.time + 0.3f, TransformingImage.rectTransform, target.rectTransform)) .AddAnimation(new TextAnimation(0.3f, Time.time + 0.8f, 0.0f, 1.0f)); _animQueue.Enqueue(animGroup); }
private void ShowActor(SceneTransitionRequest str) { var timeOffset = 0.0f; // If the actor name is already on screen, change it gracefully if (_actorGroup.alpha > 0.99f) { if (ActorName.text != str.TransitionSpeaker) { var animGroup = new AnimGroup(); animGroup.AddAnimation(new FadeAnimation(ActorName, Time.time, FadeOutDuration, FadeOutCurve, 0.0f)) .AddAnimation(new SetTextAnimation(ActorName, Time.time + FadeOutDuration, str.TransitionSpeaker)) .AddAnimation(new FadeAnimation(ActorName, Time.time + FadeOutDuration, FadeInDuration, FadeInCurve, 1.0f)); timeOffset = FadeOutDuration + FadeInDuration; _pendingAnimations.Enqueue(animGroup); } } else { // Change the name without any animation, the fade in from the canvas group will do the rest ActorName.text = str.TransitionSpeaker; _pendingAnimations.Enqueue(new AnimGroup().AddAnimation(new FadeCGAnimation(_actorGroup, Time.time + timeOffset, FadeInDuration, FadeInCurve, 1.0f))); } }