| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using DG.Tweening;
- /* 击中靶子时显示的分数 */
- public class HitTargetNumber : MonoBehaviour
- {
- void Awake()
- {
- DoText();
- }
- void DoText()
- {
- RectTransform rtf = this.transform.GetComponentInChildren<Text>().rectTransform;
- Sequence seq = DOTween.Sequence();
- float scale1 = rtf.localScale.x * 3.3f;
- float scale2 = rtf.localScale.x;
- rtf.localScale = Vector3.zero;
- seq.Append(rtf.DOScale(new Vector3(scale1, scale1, 0), 0.1f));
- seq.Append(rtf.DOScale(new Vector3(scale2, scale2, 0), 0.1f));
- seq.AppendInterval(1.88f);
- seq.Append(rtf.GetComponent<Text>().DOFade(0, 0.23f));
- seq.AppendCallback(delegate() {
- // 先停止所有相关的tweens
- DOTween.Kill(rtf);
- Destroy(this.gameObject);
- });
- }
- static List<GameObject> hitTargetNumber = new();
- public static void Create(float number) {
- if (number <= 0) return;
- if (number >= 9) {
- AudioMgr.ins.PlayRings();
- }
- //清空对象
- for (int i = hitTargetNumber.Count - 1; i >= 0; i--)
- {
- Destroy(hitTargetNumber[i].gameObject);
- hitTargetNumber.RemoveAt(i);
- }
- GameObject o = GameObject.Instantiate(
- Resources.Load<GameObject>(CommonConfig.StandaloneModeOrPlatformB? "Prefabs/Effects/HitTargetNumberPlatformB" : "Prefabs/Effects/HitTargetNumber"),
- Vector3.zero,
- Quaternion.identity,
- GameObject.Find("Canvas").transform
- );
- o.transform.localPosition = new Vector3(340, 180, 0);
- o.GetComponentInChildren<Text>().text = number.ToString($"f{CommonConfig.ringsPrecision}");
- hitTargetNumber.Add(o);
- }
- }
|