public void animateCurrencyChange(int _value) { string prefix = "+"; if (_value < 0) { prefix = ""; } string textChange = prefix + _value + " ¤"; if ((Time.time - lastAnimation < 0.5f)) { lastY = lastY + 45f; } else { lastY = -180f; } lastAnimation = Time.time; AnimatedCurrency newAnimatedCurrency = Instantiate(animatedCurrency); newAnimatedCurrency.transform.SetParent(this.gameObject.transform); newAnimatedCurrency.setY(lastY); newAnimatedCurrency.setText(textChange); }
private IEnumerator AnimateRoutine() { float totalTime = 1.25f; while (true) { for (int i = 0; i < animatedCurrenciesInFlight.Count; i++) { AnimatedCurrency animatedCurrency = animatedCurrenciesInFlight[i]; if (animatedCurrency.time > 0f) { if (animatedCurrency.onLeave != null) { animatedCurrency.onLeave(animatedCurrency.value); } animatedCurrency.image.enabled = true; if (animatedCurrency.time > totalTime) { animatedCurrenciesInFlight.RemoveAt(i); i--; animatedCurrencies.Add(animatedCurrency); animatedCurrency.image.enabled = false; if (animatedCurrency.onArrive != null) { animatedCurrency.onArrive(animatedCurrency.value); } TryPlayAudio(animatedCurrency.audioName); } else { animatedCurrency.image.transform.position = animatedCurrency.spline.interp(animatedCurrency.time / totalTime); } } else if (animatedCurrency.time + Time.unscaledDeltaTime > 0f) { TryPlayAudio(animatedCurrency.audioName); } animatedCurrency.time += Time.unscaledDeltaTime; } yield return(null); } }
private void AnimateCurrencies(AnimatedCurrencySettings settings) { if (animatedCurrencies.Count == 0) { return; } Vector3 vector = MenuController.UICamera.ViewportToWorldPoint(settings.fromViewportSpace); Vector3 vector2 = MenuController.UICamera.ViewportToWorldPoint(settings.toViewportSpace); vector.z = base.transform.position.z; vector2.z = base.transform.position.z; Vector3 vector3 = vector - vector2; Vector3 normalized = vector3.normalized; int count = settings.count; int num = count / settings.countPerSprite; int num2 = 0; LTSpline spline; while (true) { if (num2 < num) { spline = new LTSpline(new Vector3[6] { vector, vector, vector + (Vector3)UnityEngine.Random.insideUnitCircle * 2.5f + normalized * vector3.magnitude * 0.2f, vector + (Vector3)UnityEngine.Random.insideUnitCircle * 2.5f + normalized * vector3.magnitude * 0.05f, vector2, vector2 }); if (animatedCurrencies.Count > 1) { AnimatedCurrency animatedCurrency = animatedCurrencies[animatedCurrencies.Count - 1]; animatedCurrencies.RemoveAt(animatedCurrencies.Count - 1); animatedCurrency.onArrive = settings.onArrive; animatedCurrency.onLeave = settings.onLeave; animatedCurrency.image.sprite = settings.icon; animatedCurrency.image.SetNativeSize(); animatedCurrency.time = (float)(-num2) * 0.01f; animatedCurrency.value = ((num2 == num - 1) ? (count - settings.countPerSprite * num2) : settings.countPerSprite); animatedCurrency.spline = spline; animatedCurrency.audioName = settings.audioName; animatedCurrenciesInFlight.Insert(0, animatedCurrency); } else if (animatedCurrencies.Count == 1) { break; } num2++; continue; } return; } AnimatedCurrency animatedCurrency2 = animatedCurrencies[animatedCurrencies.Count - 1]; animatedCurrencies.RemoveAt(animatedCurrencies.Count - 1); animatedCurrency2.onArrive = settings.onArrive; animatedCurrency2.onLeave = settings.onLeave; animatedCurrency2.image.sprite = settings.icon; animatedCurrency2.image.SetNativeSize(); animatedCurrency2.time = (float)(-num2) * 0.01f; animatedCurrency2.value = count - settings.countPerSprite * num2; animatedCurrency2.spline = spline; animatedCurrency2.audioName = settings.audioName; animatedCurrenciesInFlight.Insert(0, animatedCurrency2); }