using DG.Tweening; using Protobuf; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// /// 子弹充能对应的数据结构. /// public class BulletUICtl : MonoBehaviour { public SpriteRenderer bulletScaleMask; public float fAdjValue; /// /// 最大子弹数目. /// public int maxBulletNum; /// /// 当前的子弹数目. /// protected int curBulletNum; private float[] scaleArr = { 0, 0.16f, 0.32f, 0.48f, 0.64f, 0.8f, 1f }; private float[] yArr = { 0.4f, 0.377f, 0.307f, 0.227f, 0.153f, 0.074f, 0 }; private float gap = 0.15f; // Start is called before the first frame update void Start() { resetToMaxBullet(); } /// /// 获取进度条进度. /// /// public int GetCtlProgress() { return this.curBulletNum; } /// /// 设置进度. /// /// public void SetCtlProcess( int pro) { this.curBulletNum = pro; this.updateBulletUI(pro, maxBulletNum); } /// /// 重设子弹数目到最大. /// public void resetToMaxBullet() { if (this.curBulletNum == maxBulletNum) return; this.curBulletNum = maxBulletNum; this.updateBulletUI(curBulletNum, maxBulletNum); } /// /// 减少子弹,返回减少后的子弹数目。 /// /// public int decBullet() { if (this.curBulletNum <= 0) return 0; this.curBulletNum--; this.updateBulletUI(curBulletNum, maxBulletNum); return curBulletNum; } /// /// 更新子弹界面对应的缩放信息 /// /// /// public void updateBulletUI( int curBNum,int totalBNum) { if (bulletScaleMask == null) return; Vector3 pos = bulletScaleMask.transform.localPosition; pos.y = yArr[maxBulletNum - curBulletNum]; bulletScaleMask.transform.localPosition = pos; Vector3 s = bulletScaleMask.transform.localScale; s.y = scaleArr[maxBulletNum - curBulletNum]; bulletScaleMask.transform.localScale = s; } // Update is called once per frame void Update() { } }