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);}
附完整教程:
Unity2d Rubys Adventure 课程设计报告