using DG.Tweening;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
public class EnergyUICtl : MonoBehaviour
|
{
|
/// <summary>
|
/// 用于显示能量条进度
|
/// </summary>
|
public Image energyScaleMask;
|
|
/// <summary>
|
/// 充能条满后,在场景内播放的特效
|
/// </summary>
|
public GameObject energyEffPrefab;
|
|
/// <summary>
|
/// 当前的能量条进度.10份进度.
|
/// </summary>
|
protected int currentProgress;
|
|
protected Vector3 vec3EffectPlay;
|
|
// Start is called before the first frame update
|
void Start()
|
{
|
currentProgress = 0;
|
//this.SetEnergyProgress(0);
|
}
|
|
/// <summary>
|
/// 设置要播放特效的位置信息.
|
/// </summary>
|
/// <param name="vec"></param>
|
public void SetEffectPlayPos( Vector3 vec)
|
{
|
vec3EffectPlay.x = vec.x;
|
vec3EffectPlay.y = vec.y;
|
vec3EffectPlay.z = vec.z;
|
}
|
|
/// <summary>
|
/// 获取进度条进度.
|
/// </summary>
|
/// <returns></returns>
|
public int GetCtlProgress()
|
{
|
return currentProgress;
|
}
|
|
/// <summary>
|
/// 设置进度.
|
/// </summary>
|
/// <param name="pro"></param>
|
public void SetCtlProcess(int pro)
|
{
|
if (pro == 10)
|
pro = 0;
|
energyScaleMask.rectTransform.DOKill();
|
this.SetEnergyProgress(pro,false);
|
}
|
|
/// <summary>
|
/// 显示并更新能量条进度.
|
/// </summary>
|
/// <param name="pro"></param>
|
public void SetEnergyProgress(int pro,bool ani = true)
|
{
|
if (pro == currentProgress) return;
|
|
if( ani )
|
energyScaleMask.rectTransform.DOScaleY( pro / 10.0f, 0.3f );
|
else
|
energyScaleMask.rectTransform.DOScaleY(pro / 10.0f, 0.0f);
|
currentProgress = pro;
|
}
|
|
public void SetEnergyProcessFloat( float fpro)
|
{
|
energyScaleMask.rectTransform.DOScaleY(fpro / 10.0f, 0.0f);
|
currentProgress = (int)Mathf.Floor(fpro);
|
}
|
|
// Update is called once per frame
|
void Update()
|
{
|
|
}
|
}
|