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 ; //射击数 private int numberOfShotsFired = 0; public int getBulletCount { get { return bulletCount; } } void Start() { numberOfShotsFired = 0; ResetBullets(); } 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); //暂时自动刷新,接入协议后修改效果 //ResetBullets(); return true; } return false; } 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 bulletNumber = new(); public static void Create(Transform parentTran) { //清空对象 for (int i = bulletNumber.Count - 1; i >= 0; i--) { Destroy(bulletNumber[i].gameObject); bulletNumber.RemoveAt(i); } GameObject o = Instantiate(Resources.Load("Common/TipBulletNumber")); // 重置Transform属性 o.transform.SetParent(parentTran); // 获取RectTransform组件 RectTransform rectTransform = o.GetComponent(); // 设置相对于锚点的偏移位置 rectTransform.anchoredPosition = new Vector2(0, 120); rectTransform.localRotation = Quaternion.identity; rectTransform.localScale = Vector3.one; //o.GetComponentInChildren().text = number.ToString($"f{CommonConfig.ringsPrecision}"); bulletNumber.Add(o); } }