UI对象
效果
血量显示 时间显示
子弹显示
敌人数显示
核心代码
位于UIManager.cs脚本
//更新血条
public void UpdateHealthBar(int curAmount,int maxAmount)
{
healthBar.fillAmount = (float)curAmount / (float)maxAmount;
}
//更新子弹
public void UpdateBulletCount(int curAmount,int maxAmount)
{
bulletCountText.text = curAmount.ToString()+"/"+maxAmount.ToString();
}
//刷新时间
public void UpdateTimeBar(int curtime)
{
int min = curtime / 60;
int sec = curtime % 60;
if (sec < 10 && min<10)
{
TimeBar.text = "0"+min.ToString() + ":0" + sec.ToString();
}
if (sec > 10 && min < 10)
{
TimeBar.text = "0" + min.ToString() + ":" + sec.ToString();
}
}
//更新敌人数
public void UpdateEnemyLeft(int enemyleft)
{
EnemyLeftBar.text = enemyleft.ToString();
}
必备配套代码
public static UIManager instance { get; private set; }
private void Awake()
{
instance = this;
}
玩家脚本调用代码
public void changeHealth(int amount)
{
//可能是受到伤害,也可能是加血
if(amount<0)
{
//如果是受伤,设置无敌状态,则2秒内不能受伤
if(isWudi==true)
{
return;
}
isWudi = true;
//播放受伤动画
anim.SetTrigger("Hit");
//播放受伤音效
AudioManager.instance.AudioPlay(hitClip);
//为无敌计时器赋值
wuditimer = wuditime;
}
//更改健康值
currentHealth = Mathf.Clamp(currentHealth+amount,0,maxHealth);
//更新血条
UIManager.instance.UpdateHealthBar(currentHealth, maxHealth);
//调试
Debug.Log(currentHealth + "/" + maxHealth);
}
public void ChangeBulletCount(int amount)
{
//改变子弹数
curBulletCount = Mathf.Clamp(curBulletCount + amount, 0, maxBulletCount);
//改变UI子弹数
UIManager.instance.UpdateBulletCount(curBulletCount, maxBulletCount);
}
public void UpdateTime()
{
//游戏时间
gametime += Time.deltaTime;
//Debug.Log((int)gametime);
//改变UI时间
UIManager.instance.UpdateTimeBar((int)gametime);
}
public void UpdateEnemyLeft()
{
UIManager.instance.UpdateEnemyLeft(enemyleft);
}
附完整教程:
原博地址
https://blog.csdn.net/weixin_43673589