97 lines
2.6 KiB
C#
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);
|
|
}
|
|
});
|
|
}
|
|
}
|