U3D游戲角色血條制作并顯示血量變化
關(guān)鍵:利用Slider來制作血條
大概效果:
數(shù)字會隨著血量變化而變化。
步驟
1、在層級面板中右擊,選擇UI中的Slider.
2、創(chuàng)建好后,將Slider命名為HealthBar,可以看到層級面板中Slider的結(jié)構(gòu)為,刪掉其中的“Handle Slide Area”.
3、在層級面板選中HealthBar,在右側(cè)的檢查器窗口可以看到Slider組件屬性,在MaxValue和MinValue內(nèi)設(shè)置值,表示角色的血量范圍,這里設(shè)置血量范圍0-100,勾選整數(shù).
4、選擇HealthBar下的Background,在右側(cè)檢查器中,點擊Rect Transform下的stretch.
點開stretch后,按住“Alt”鍵同時鼠標(biāo)點擊右下方的方塊,讓Background鋪展開來.
鋪展開的HealthBar為如下形式
5、對Fill Area和其下的Fill也做上一步的操作。(注意,F(xiàn)ill Area和Fill要分別進行操作),效果如下
6、改變Background和Fill的顏色來區(qū)分。
效果:
HealthBar組件下的Value滑塊可以看改變值時的狀態(tài),若是在改變值的時候,血條改變方向不對的話可以改變Fill Area的旋轉(zhuǎn)值,根據(jù)自己游戲內(nèi)坐標(biāo)調(diào)整。
我的調(diào)整
7、在HealthBar層級下新建一個舊版的Text,并命名為CurrentHealth.
修改文字的格式、位置、內(nèi)容等
8、創(chuàng)建一個腳本,命名為PlayControl,掛載到你的游戲的主角上。
首先創(chuàng)建變量用來存儲當(dāng)前的血量和最大血量
private float maxHealth=100;
public float MyMaxHealth
{
get { return maxHealth; }
}
private float currentHealth;
public float MyCurrentHealth
{
get { return currentHealth; }
}
在Start()中
currentHealth = maxHealth;
HealthBar.Instance.changeHealth();
減少血量的函數(shù)
public void ReduceHealth(float health)
{
currentHealth = Mathf.Clamp(currentHealth - health, 0, maxHealth);
HealthBar.Instance.changeHealth();
}
9、創(chuàng)建一個腳本,命名為HealthBar,并掛載到HealthBar上。文章來源:http://www.zghlxwxcb.cn/news/detail-485931.html
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class HealthBar : MonoBehaviour
{
Slider healthBar;
//在unity中關(guān)聯(lián)游戲角色
public PlayerControler _play=new PlayerControler();
//創(chuàng)建一個單例
public static HealthBar Instance;
//掛載創(chuàng)建的CurrentHealth的文本UI
public Text healthNumber;
void Awake()
{
Instance = this;
}
public void changeHealth()
{
//在playcontrol腳本中調(diào)用該函數(shù),所以先判斷是否獲取到組件,
//若是放在該腳本的Start中可能會獲取不到
if (healthBar == null)
{
healthBar = GetComponent<Slider>();
}
//使用該段代碼前,在Slider檢視器中勾選整數(shù),設(shè)置最大最小值
healthBar.value = _play.MyCurrentHealth;
healthNumber.text=healthBar.value+"/"+_play.MyMaxHealth;
}
}
10、掛載完HealthBar腳本后,將主角拖到“播放”框內(nèi),將CurrentHealth文本拖到“HealthNumber”中,差不多可以實現(xiàn)效果了
如果有問題,歡迎留言 (??????)??文章來源地址http://www.zghlxwxcb.cn/news/detail-485931.html
到了這里,關(guān)于U3D游戲角色血條制作并顯示血量變化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!