OvertakingLegend/Assets/UIFrameWork/Script/GameUI/GameUI_Skill.cs

97 lines
2.6 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 游戏UI_技能
/// </summary>
public partial class GameUI
{
/// <summary>
/// 是否满能量
/// </summary>
private bool isFullEnergy;
/// <summary>
/// 技能名字
/// </summary>
public TextMeshProUGUI skillName;
/// <summary>
/// 技能CD
/// </summary>
public Image skillCD;
/// <summary>
/// 技能图标
/// </summary>
public Image skillIcon;
/// <summary>
/// 速度特效
/// </summary>
private GameObject fx_speed;
/// <summary>
/// 设置技能能量
/// </summary>
public void SetSkillEnergy(float value, float end)
{
isFullEnergy = true;
skillCD.fillAmount = value / end;
if (skillCD.fillAmount >= 1)
{
skillCD.material = YooAssetManager.Instance.LoadAssetSync<Material>(PackagesName.GameData, "PicHDR");
}
if (skillCD.fillAmount <= 0)
{
skillCD.material = null;
}
}
/// <summary>
/// 设置技能对象
/// </summary>
public void SetSkill()
{
if (isFullEnergy)
{
isFullEnergy = false;
return;
}
skillCD.fillAmount = 0;
skillIcon.sprite = YooAssetManager.Instance.LoadAssetSync<Sprite>(PackagesName.GameData, UserDataManager.Instance.userData.skillId + "Icon");
skillName.text = ConfigManager.Instance.Tables.TbSkillConfig.Get(UserDataManager.Instance.userData.skillId).SkillName;
}
/// <summary>
/// 速度特效清除
/// </summary>
public void SpeedFXClear()
{
if (fx_speed != null)
{
CachePoolManager.Instance.Put(fx_speed.gameObject);
}
}
/// <summary>
/// 生成速度特效
/// </summary>
public void GenerateSpeedFX()
{
fx_speed = CachePoolManager.Instance.Take(YooAssetManager.Instance.LoadAssetSync<GameObject>(PackagesName.GameData, "fx_speed"));
fx_speed.transform.SetParent(speedFXPoint, false);
fx_speed.transform.localEulerAngles = Vector3.zero;
fx_speed.transform.localPosition = new Vector3(0, -20, -5306);
fx_speed.transform.localScale = new Vector3(373, 466, 3116);
DelayedProcessingManager.Instance.DelayDoSecond(this, UserDataManager.Instance.GetAlreadyHaveTimeOfDuration(UserDataManager.Instance.userData.skillId), () =>
{
if (fx_speed != null)
{
CachePoolManager.Instance.Put(fx_speed.gameObject);
}
});
}
}