private void Unhide() { if (isHided) { isAnimating = true; isHided = false; RectTransform trs = GetComponent <RectTransform>(); Vector2Animator animator = GetComponent <Vector2Animator>(); animator.StartAnimation(new Vector2AnimationData { StartValue = new Vector2(0, -145), EndValue = new Vector2(0, _botOffset), Duration = 0.3f, AnimationMode = BosAnimationMode.Single, EaseType = EaseType.EaseInOutQuad, Target = gameObject, OnStart = (p, o) => trs.anchoredPosition = p, OnUpdate = (p, t, o) => trs.anchoredPosition = p, OnEnd = (p, o) => { trs.anchoredPosition = p; bankAlertParticles.Activate(); isAnimating = false; } }); } }
private IEnumerator MoveToImpl(List <Vector2AnimationData> datas) { Vector2Animator vec2Animator = RectTransform.gameObject.GetOrAdd <Vector2Animator>(); yield return(new WaitUntil(() => vec2Animator.IsStarted == false)); vec2Animator.StartAnimation(datas); }
public static void ScaleMe(this GameObject obj, float start, float end, float duration, EaseType easeType, Action onEnd = null) { RectTransform rectTransform = obj.GetComponent <RectTransform>(); Vector2Animator animator = obj.GetOrAdd <Vector2Animator>(); animator.StartAnimation(GetScaleAnimData(start, end, duration, easeType, rectTransform, onEnd)); }
private IEnumerator MoveInPlaceImpl(MechanicAnimObject mechanicView, TempMechanicInfo info) { yield return(new WaitForSeconds(.2f)); Vector3Animator scaleAnimator = mechanicView.gameObject.GetOrAdd <Vector3Animator>(); Vector2Animator positionAnimator = mechanicView.gameObject.GetOrAdd <Vector2Animator>(); FloatAnimator rotateAnimator = mechanicView.gameObject.GetOrAdd <FloatAnimator>(); RectTransform rectTransform = mechanicView.GetComponent <RectTransform>(); Vector2 startPosition = rectTransform.anchoredPosition; Vector2 endPosition = mechanicView.leftPosition; Vector2AnimationData positionData = new Vector2AnimationData { StartValue = startPosition, EndValue = endPosition, Duration = .3f, EaseType = EaseType.EaseInOutQuad, Target = mechanicView.gameObject, OnStart = rectTransform.UpdatePositionFunctor(), OnUpdate = rectTransform.UpdatePositionTimedFunctor(), OnEnd = rectTransform.UpdatePositionFunctor(() => { Debug.Log($"setup temp mechanic on state => {info.State}"); mechanicView.Setup(info); mechanicViews.Add(mechanicView.TempMechanic.Id, mechanicView); animatedViews.Remove(mechanicView.TempMechanic.Id); }) }; Vector3AnimationData scaleData = new Vector3AnimationData { StartValue = 2f * Vector3.one, EndValue = Vector3.one, Duration = .3f, EaseType = EaseType.EaseInOutQuad, Target = mechanicView.gameObject, OnStart = rectTransform.UpdateScaleFunctor(), OnUpdate = rectTransform.UpdateScaleTimedFunctor(), OnEnd = rectTransform.UpdateScaleFunctor() }; FloatAnimationData rotateData = new FloatAnimationData { StartValue = rectTransform.localRotation.eulerAngles.z, EndValue = 0, Duration = .3f, EaseType = EaseType.EaseInOutQuad, Target = mechanicView.gameObject, OnStart = rectTransform.UpdateZRotation(), OnUpdate = rectTransform.UpdateZRotationTimed(), OnEnd = rectTransform.UpdateZRotation() }; positionAnimator.StartAnimation(positionData); scaleAnimator.StartAnimation(scaleData); rotateAnimator.StartAnimation(rotateData); }
private void CreateAccumulatedText(double val, bool isManual) { if (textPull.HasObject) { float duration = 1; //isManual ? 0.6f : 0.3f; GameObject inst = textPull.UseAtPosition(new Vector2(UnityEngine.Random.Range(0, 330), -353)); //Instantiate(AccumulatedTextPrefab, transform, false); Text txt = inst.GetComponent <Text>(); txt.text = val.ToCurrencyNumber().PrefixedAbbreviation(); RectTransform textTrs = inst.GetComponent <RectTransform>(); float finalDuration = duration + UnityEngine.Random.Range(-.2f, .2f); Vector2Animator vec2Animator = inst.GetComponent <Vector2Animator>(); vec2Animator.StartAnimation(new Vector2AnimationData { StartValue = textTrs.anchoredPosition, EndValue = textTrs.anchoredPosition + Vector2.down * 5 /* + Vector2.up * 60*/, Duration = finalDuration, EaseType = EaseType.EaseInOutQuad, Target = inst, OnStart = textTrs.UpdatePositionFunctor(), OnUpdate = textTrs.UpdatePositionTimedFunctor(), OnEnd = textTrs.UpdatePositionFunctor(() => textPull.Free(inst)) }); FloatAnimator alphaAnimator = inst.GetComponent <FloatAnimator>(); CanvasGroup cg = inst.GetComponent <CanvasGroup>(); alphaAnimator.Stop(); cg.alpha = 1; alphaAnimator.StartAnimation(new FloatAnimationData { Duration = finalDuration * 1.5f, EaseType = EaseType.EaseInOutQuad, StartValue = 1, EndValue = 0, Target = inst, OnStart = cg.UpdateAlphaFunctor(), OnUpdate = cg.UpdateAlphaTimedFunctor(), OnEnd = cg.UpdateAlphaFunctor() }); Vector3Animator v3animator = inst.GetOrAdd <Vector3Animator>(); v3animator.Stop(); v3animator.StartAnimation(textTrs.ConstructScaleAnimationData(Vector3.one * .1f, Vector3.one, finalDuration * 0.5f, BosAnimationMode.Single, EaseType.EaseInOutQuad, () => { v3animator.StartAnimation(textTrs.ConstructScaleAnimationData(Vector3.one, Vector3.one * .1f, finalDuration * 0.5f, BosAnimationMode.Single, EaseType.EaseInOutQuad)); })); //ColorAnimator colorAnimator = inst.GetComponent<ColorAnimator>(); //colorAnimator.StartAnimation(AnimUtils.GetColorAnimData(txt.color, txt.color.ChangeAlpha(0), finalDuration, EaseType.EaseInOutQuad, textTrs)); } }
public void Setup(string text, float value, int managerId) { descriptionText.text = text; descriptionValueText.text = $"+{(int)(value * 100)}%"; ViewService.Utils.ApplyManagerIcon(managerIcon, Services.GenerationService.GetGetenerator(managerId), true); RectTransform selfTransform = GetComponent <RectTransform>(); Vector2Animator positionAnimator = gameObject.GetOrAdd <Vector2Animator>(); FloatAnimator alphaAnimator = gameObject.GetOrAdd <FloatAnimator>(); const float kDuration = 2.5f; positionAnimator.StartAnimation(new Vector2AnimationData { StartValue = selfTransform.anchoredPosition, EndValue = selfTransform.anchoredPosition + Vector2.up * 250, Duration = kDuration, AnimationMode = BosAnimationMode.Single, EaseType = EaseType.EaseInOutQuad, Target = gameObject, OnStart = selfTransform.UpdatePositionFunctor(), OnUpdate = selfTransform.UpdatePositionTimedFunctor(), OnEnd = selfTransform.UpdatePositionFunctor(), Events = new List <AnimationEvent <Vector2> > { new AnimationEvent <Vector2> { IsValid = (p, t, o) => t >= 0.5f, Mode = AnimationEventMode.Single, OnEvent = (p, t, o) => { alphaAnimator.StartAnimation(new FloatAnimationData { StartValue = 1, EndValue = 0, AnimationMode = BosAnimationMode.Single, Duration = kDuration * .5f, EaseType = EaseType.Linear, Target = gameObject, OnStart = canvasGroup.UpdateAlphaFunctor(), OnUpdate = canvasGroup.UpdateAlphaTimedFunctor(), OnEnd = canvasGroup.UpdateAlphaFunctor(() => { Destroy(gameObject); }) }); } } } }); StartLight(); StartPercentText(); StartArrow(); }
private IEnumerator ShowMoveTextFailImpl(UnofficialTransferCashInfo info) { yield return(new WaitForSeconds(interval)); GameObject textPrefab = Services.ResourceService.Prefabs.GetPrefab("movetext"); GameObject textInstance = Instantiate(textPrefab); Text text = textInstance.GetComponent <Text>(); text.text = $"-{BosUtils.GetCurrencyString(info.LooseValue.ToCurrencyNumber(), "", "")}"; //text.SetAllDirty(); RectTransform textTransform = textInstance.GetComponent <RectTransform>(); textTransform.SetParent(transform, false); textTransform.anchoredPosition = endObject.anchoredPosition; textTransform.localScale = new Vector3(2, 2, 1); Color startColor = Color.red; Color endColor = Color.red.ChangeAlpha(0.1f); var colorData = AnimUtils.GetColorAnimData(startColor, endColor, 1.5f, EaseType.EaseOutQuintic, textTransform, BosAnimationMode.Single, () => { }); var positionData = new Vector2AnimationData() { StartValue = textTransform.anchoredPosition, EndValue = textTransform.anchoredPosition - new Vector2(0, 300), Duration = 1.5f, EaseType = EaseType.EaseOutQuintic, Target = textInstance, OnStart = (p, o) => textTransform.anchoredPosition = p, OnUpdate = (p, t, o) => textTransform.anchoredPosition = p, OnEnd = (p, o) => { textTransform.anchoredPosition = p; Destroy(textInstance); } }; ColorAnimator colorAnimator = textInstance.GetComponent <ColorAnimator>(); Vector2Animator positionAnimator = textInstance.GetComponent <Vector2Animator>(); colorAnimator.StartAnimation(colorData); positionAnimator.StartAnimation(positionData); Sounds.PlayOneShot(SoundName.slotFail); ViewService.ShowDelayed(ViewType.TransferWarningView, 0.5f, new ViewData { ViewDepth = ViewService.NextViewDepth, UserData = info.LooseValue }); animObjects.Add(textInstance); }
public static void MoveFromTo(this RectTransform transform, Vector2 startPosition, Vector2 endPosition, float duration, EaseType easeType, Action onComplete = null) { Vector2Animator animator = transform.gameObject.GetOrAdd <Vector2Animator>(); Vector2AnimationData data = new Vector2AnimationData { StartValue = startPosition, EndValue = endPosition, Duration = duration, EaseType = easeType, AnimationMode = BosAnimationMode.Single, Target = transform.gameObject, OnStart = transform.UpdatePositionFunctor(), OnUpdate = transform.UpdatePositionTimedFunctor(), OnEnd = transform.UpdatePositionFunctor(onComplete) }; animator.StartAnimation(data); }
private IEnumerator ShowGirlImpl() { yield return(new WaitForSeconds(0.3f)); Vector2Animator posAnimator = girlTransform.gameObject.GetOrAdd <Vector2Animator>(); Vector2AnimationData posData = new Vector2AnimationData() { StartValue = new Vector2(-650, -110), EndValue = new Vector2(-360, -110), Duration = .2f, EaseType = EaseType.EaseInOutQuad, Target = girlTransform.gameObject, OnStart = girlTransform.UpdatePositionFunctor(), OnUpdate = girlTransform.UpdatePositionTimedFunctor(), OnEnd = girlTransform.UpdatePositionFunctor(() => { /*StartCoroutine(ShowBubbleImpl());*/ StartCoroutine(ShowOkButtonImpl()); }) }; posAnimator.StartAnimation(posData); }
private void Unhide() { if (isHided) { isAnimating = true; isHided = false; RectTransform trs = GetComponent <RectTransform>(); Vector2Animator animator = GetComponent <Vector2Animator>(); animator.StartAnimation(new Vector2AnimationData { StartValue = new Vector2(0, -110), EndValue = new Vector2(0, 92.5f), Duration = 0.3f, AnimationMode = BosAnimationMode.Single, EaseType = EaseType.EaseInOutQuad, Target = gameObject, OnStart = trs.UpdatePositionFunctor(), OnUpdate = trs.UpdatePositionTimedFunctor(), OnEnd = trs.UpdatePositionFunctor(() => { isAnimating = false; }) }); } }
private IEnumerator MoveToHidedImpl(float totalInterval) { yield return(new WaitUntil(() => !isAnimating)); isAnimating = true; Vector2Animator positionAnimator = gameObject.GetOrAdd <Vector2Animator>(); RectTransform rectTransform = GetComponent <RectTransform>(); positionAnimator.StartAnimation(new Vector2AnimationData { StartValue = rectTransform.anchoredPosition, EndValue = hidedPosition, AnimationMode = BosAnimationMode.Single, Duration = GetAnimateIntervalForPosition(rectTransform.anchoredPosition, hidedPosition, totalInterval), EaseType = EaseType.EaseInOutQuintic, Target = gameObject, OnStart = rectTransform.UpdatePositionFunctor(), OnUpdate = rectTransform.UpdatePositionTimedFunctor(), OnEnd = rectTransform.UpdatePositionFunctor(() => { isAnimating = false; State = ModulePartState.Hided; }) }); }
private void AnimateAuditorObject(SecretaryAnimObject mechanicView, Auditor info) { Vector3Animator scaleAnimator = mechanicView.gameObject.GetOrAdd <Vector3Animator>(); Vector2Animator positionAnimator = mechanicView.gameObject.GetOrAdd <Vector2Animator>(); ColorAnimator colorAnimator = mechanicView.gameObject.GetOrAdd <ColorAnimator>(); FloatAnimator rotateAnimator = mechanicView.gameObject.GetOrAdd <FloatAnimator>(); RectTransform rectTransform = mechanicView.GetComponent <RectTransform>(); Image image = mechanicView.GetComponent <Image>(); Vector2 endOffset = Random.insideUnitCircle.normalized * 300; if (endOffset.y < 0) { endOffset.y = -endOffset.y; } Vector2 startPosition = buyButton.GetComponent <RectTransform>().anchoredPosition; Vector2 endPosition = startPosition + endOffset; Vector2AnimationData positionData = new Vector2AnimationData { StartValue = startPosition, EndValue = endPosition, Duration = 0.3f, EaseType = EaseType.EaseInOutQuad, Target = mechanicView.gameObject, OnStart = rectTransform.UpdatePositionFunctor(), OnUpdate = rectTransform.UpdatePositionTimedFunctor(), OnEnd = rectTransform.UpdatePositionFunctor(() => { StartCoroutine(MoveInPlaceImpl(mechanicView, info)); }) }; Vector3AnimationData scaleData = new Vector3AnimationData { StartValue = Vector3.one, EndValue = 2f * Vector3.one, Duration = .3f, EaseType = EaseType.EaseInOutQuad, Target = mechanicView.gameObject, OnStart = rectTransform.UpdateScaleFunctor(), OnUpdate = rectTransform.UpdateScaleTimedFunctor(), OnEnd = rectTransform.UpdateScaleFunctor() }; ColorAnimationData colorData = new ColorAnimationData { StartValue = new Color(1, 1, 1, 0), EndValue = new Color(1, 1, 1, 1), Duration = .1f, EaseType = EaseType.EaseInOutQuad, Target = mechanicView.gameObject, OnStart = image.UpdateColorFunctor(), OnUpdate = image.UpdateColorTimedFunctor(), OnEnd = image.UpdateColorFunctor() }; FloatAnimationData rotateData = new FloatAnimationData { StartValue = 0, EndValue = Random.Range(-40, 40), Duration = .3f, EaseType = EaseType.EaseInOutQuad, Target = mechanicView.gameObject, OnStart = rectTransform.UpdateZRotation(), OnUpdate = rectTransform.UpdateZRotationTimed(), OnEnd = rectTransform.UpdateZRotation() }; positionAnimator.StartAnimation(positionData); scaleAnimator.StartAnimation(scaleData); colorAnimator.StartAnimation(colorData); rotateAnimator.StartAnimation(rotateData); }