| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 | 
							- using System.Collections.Generic;
 
- using UnityEngine;
 
- using UnityEngine.UI;
 
- public class BulletManager : MonoBehaviour
 
- {
 
-     public Image[] bulletImages;
 
-     public Sprite bulletSprite;
 
-     public Sprite emptyBulletSprite;
 
-     //默认子弹数量
 
-     public int defaultBulletCount = 15;
 
-     private int bulletCount;
 
-     public GameObject parent ;
 
-     [SerializeField]
 
-     [Tooltip("生成子弹不足提示的位置是否在是正中心")]
 
-     bool bCenter = false;
 
-     [SerializeField]
 
-     [Tooltip("生成子弹不足提示的字体颜色")]
 
-     Color bulletTipColor;
 
-     //射击数
 
-     private int numberOfShotsFired = 0;
 
-     public int getBulletCount { 
 
-         get {
 
-             return bulletCount;
 
-         }
 
-     }
 
-     void Awake()
 
-     {
 
-         numberOfShotsFired = 0;
 
-         ResetBullets();
 
-     }
 
-     public void Update()
 
-     {
 
-         if (Input.GetKeyDown(KeyCode.Q))
 
-         {
 
-             if (bulletZero()) return;
 
-             FireBullet();
 
-         }
 
-     }
 
-     public void FireBullet()
 
-     {
 
-         if (bulletCount > 0)
 
-         {
 
-             bulletCount--;
 
-             UpdateBullets();
 
-             //记录射击的总数
 
-             numberOfShotsFired++;
 
-         }
 
-     }
 
-     public void ResetBullets()
 
-     {
 
-         bulletCount = defaultBulletCount;
 
-         UpdateBullets();
 
-     }
 
-     //是否判断射击完使用
 
-     public bool NumberOfShotsFired() {
 
-         return numberOfShotsFired >= defaultBulletCount ? true : false;
 
-     }
 
-     public bool bulletZero() {
 
-         if (getBulletCount == 0) {
 
-             Create(parent.transform,bCenter, bulletTipColor);
 
-             //暂时自动刷新,接入协议后修改效果
 
-             //ResetBullets();
 
-             return true;
 
-         }
 
-         return false;
 
-     }
 
-     /// <summary>
 
-     /// 不需要自动删除
 
-     /// </summary>
 
-     /// <returns></returns>
 
-     public bool bulletZeroNotDelete() {
 
-         if (getBulletCount == 0)
 
-         {
 
-             //禁用自动删除
 
-             Create(parent.transform, bCenter, bulletTipColor,true);
 
-             return true;
 
-         }
 
-         return false;
 
-     }
 
-     /// <summary>
 
-     /// 外部调用:手动删除所有 TipBulletNumber
 
-     /// </summary>
 
-     public static void RemoveBulletExternally()
 
-     {
 
-         for (int i = bulletNumber.Count - 1; i >= 0; i--)
 
-         {
 
-             if (bulletNumber[i] != null)
 
-             {
 
-                 bulletNumber[i].Remove();
 
-             }
 
-         }
 
-         bulletNumber.Clear();
 
-     }
 
-     private void UpdateBullets()
 
-     {
 
-         for (int i = 0; i < bulletImages.Length; i++)
 
-         {
 
-             if (i < bulletCount)
 
-             {
 
-                 bulletImages[i].sprite = bulletSprite;
 
-             }
 
-             else
 
-             {
 
-                 bulletImages[i].sprite = emptyBulletSprite;
 
-             }
 
-         }
 
-     }
 
-     static List<TipBulletNumber> bulletNumber = new();
 
-     public static void Create(Transform parentTran,bool centerPos,Color color, bool disableAutoDelete = false)
 
-     {
 
-         //清空对象
 
-         //for (int i = bulletNumber.Count - 1; i >= 0; i--)
 
-         //{
 
-         //    Destroy(bulletNumber[i].gameObject);
 
-         //    bulletNumber.RemoveAt(i);
 
-         //}
 
-         RemoveBulletExternally();
 
-         GameObject o = Instantiate(Resources.Load<GameObject>("Common/TipBulletNumber"));
 
-         // 重置Transform属性
 
-         o.transform.SetParent(parentTran);
 
-         TipBulletNumber tip = o.GetComponent<TipBulletNumber>();
 
-         tip.SetOutTipColor(color);
 
-         tip.SetDisableAutoDelete(disableAutoDelete); // 设置是否禁用自动删除
 
-         bulletNumber.Add(tip);
 
-         // 获取RectTransform组件
 
-         RectTransform rectTransform = o.GetComponent<RectTransform>();
 
-         // 设置相对于锚点的偏移位置
 
-         if (centerPos)
 
-         {
 
-             rectTransform.anchorMin = new Vector2(0.5f, 0.5f);
 
-             rectTransform.anchorMax = new Vector2(0.5f, 0.5f);
 
-             //rectTransform.anchoredPosition = new Vector2(0, rectTransform.rect.height / 2);
 
-             rectTransform.anchoredPosition = new Vector2(0, 0);
 
-             rectTransform.localRotation = Quaternion.identity;
 
-             rectTransform.localScale = Vector3.one;
 
-         }
 
-         else {
 
-             rectTransform.anchoredPosition = new Vector2(0, 120);
 
-             rectTransform.localRotation = Quaternion.identity;
 
-             rectTransform.localScale = Vector3.one;
 
-         }
 
-   
 
-         //o.GetComponentInChildren<Text>().text = number.ToString($"f{CommonConfig.ringsPrecision}");
 
-     }
 
- }
 
 
  |