欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Unity實現(xiàn)游戲傷害數(shù)字顯示HUD的方法

 更新時間:2021年10月25日 10:28:43   作者:小紫蘇xw  
游戲中收到傷害掉血,會有飄動的傷害數(shù)值,本文主要介紹Unity實現(xiàn)游戲傷害數(shù)字顯示HUD的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

傷害數(shù)字顯示HUD

游戲中收到傷害掉血,會有飄動的傷害數(shù)值;

可以使用OnGUI中GUI.Label來實現(xiàn);

可自定義字體,顏色,大小等;

如果需要更好看的數(shù)字特效,可以手動添加;

普通字體不夠好看可以使用插件FontEditor自定義;

Demo展示

HUDPopup類

飄血數(shù)字類,創(chuàng)建一個空物體,將這個腳本掛上去,再將這個物體拖成預(yù)制體;

public class HUDPopup : MonoBehaviour 
{
    //目標(biāo)位置  
    private Vector3 mTarget;  
    //屏幕坐標(biāo)  
    private Vector3 mScreen;  
    //傷害數(shù)值  
    public int Value;
    //文本寬度  
    public float ContentWidth;  
    //文本高度  
    public float ContentHeight;
    //GUI坐標(biāo)  
    private Vector2 mPoint;
    //銷毀時間  
    public float FreeTime = 1.5F;
    public Font font;
    public Color color;
    public int fontSize;
    public float speed;
    void Start ()
    {
        //獲取目標(biāo)位置  
        mTarget = transform.position;  
        //獲取屏幕坐標(biāo)  
        mScreen = Camera.main.WorldToScreenPoint(mTarget);  
        //將屏幕坐標(biāo)轉(zhuǎn)化為GUI坐標(biāo)  
        mPoint = new Vector2(mScreen.x, Screen.height - mScreen.y);  
        //開啟自動銷毀線程  
        StartCoroutine("Free");  
    }  
  
    void Update()  
    {  
        //使文本在垂直方向山產(chǎn)生一個偏移  
        transform.Translate(Vector3.up * speed * Time.deltaTime);
        //重新計算坐標(biāo)  
        mTarget = transform.position;  
        //獲取屏幕坐標(biāo)  
        mScreen = Camera.main.WorldToScreenPoint(mTarget); 
        //將屏幕坐標(biāo)轉(zhuǎn)化為GUI坐標(biāo)  
        mPoint = new Vector2(mScreen.x, Screen.height - mScreen.y);
    }  
  
    void OnGUI()  
    {  
        //保證目標(biāo)在攝像機前方  
        if(mScreen.z>0)  
        {  
           //內(nèi)部使用GUI坐標(biāo)進行繪制  
           GUIStyle style = new GUIStyle();
           style.fontSize = fontSize;
           style.font = font;
           style.normal.textColor = color;
           GUI.Label(new Rect(mPoint.x, mPoint.y, ContentWidth, ContentHeight), "-"+Value.ToString(),style);
        }  
    }  
  
    IEnumerator Free()  
    {  
        yield return new WaitForSeconds(FreeTime);  
        Destroy(this.gameObject);  
    }  
}  

一些自定義屬性,默認Color的透明度是0,如果出現(xiàn)不顯示,可以看看這里;

使用時,在需要有掉血數(shù)字的物體上的腳本中實例化HUDPopup,創(chuàng)一個HUD預(yù)制體對象,放在該物體的子節(jié)點下某個位置(一般在怪物頭頂創(chuàng)建一個空節(jié)點,用來當(dāng)HUD的父物體);

測試類代碼:

public class Test : MonoBehaviour
{
    public GameObject popupDamage;
    public Transform hudPos;
    
    private void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            GameObject mObject = (GameObject)Instantiate(popupDamage, hudPos.position, Quaternion.identity);
            mObject.GetComponent<HUDPopup>().Value = Random.Range(20, 40);
        }
    }
}

到此這篇關(guān)于Unity實現(xiàn)游戲傷害數(shù)字顯示HUD的方法的文章就介紹到這了,更多相關(guān)Unity 傷害數(shù)字顯示HUD內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# WinForm制作異形窗體與控件的方法

    C# WinForm制作異形窗體與控件的方法

    這篇文章主要介紹了C# WinForm制作異形窗體與控件的方法,結(jié)合實例形式分析了WinForm制作異形窗體與控件的原理、實現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • c# 委托和事件實例學(xué)習(xí)

    c# 委托和事件實例學(xué)習(xí)

    今天把委托和事件研究了一個,winForm環(huán)境下,一般的小例子都是字符界面,我為了運用一下,寫了winForm
    2009-01-01
  • C#操作windows系統(tǒng)進程的方法

    C#操作windows系統(tǒng)進程的方法

    這篇文章主要介紹了C#操作windows系統(tǒng)進程的方法,涉及C#針對windows操作系統(tǒng)進程的創(chuàng)建與關(guān)閉的技巧,需要的朋友可以參考下
    2015-04-04
  • C# 設(shè)計模式系列教程-命令模式

    C# 設(shè)計模式系列教程-命令模式

    在軟件系統(tǒng)中,行為請求者與行為實現(xiàn)者通常是一種緊耦合的關(guān)系,但某些場合,比如需要對行為進行記錄、撤銷或重做、事務(wù)等處理時,這種無法抵御變化的緊耦合的設(shè)計就不太合適。
    2016-06-06
  • c#實現(xiàn)數(shù)據(jù)同步的方法(使用文件監(jiān)控對象filesystemwatcher)

    c#實現(xiàn)數(shù)據(jù)同步的方法(使用文件監(jiān)控對象filesystemwatcher)

    這篇文章主要介紹了C#使用文件監(jiān)控對象FileSystemWatcher實現(xiàn)數(shù)據(jù)同步,大家參考使用吧
    2013-12-12
  • C#對文件進行加密解密代碼

    C#對文件進行加密解密代碼

    本文給大家分享的是使用C#對文件進行加密解密的代碼,十分的簡單實用,有需要的小伙伴可以參考下。
    2015-07-07
  • C#中判斷一個集合是否是另一個集合的子集的簡單方法

    C#中判斷一個集合是否是另一個集合的子集的簡單方法

    本文介紹利用C#中內(nèi)置的系統(tǒng)函數(shù)判斷一個集合是否是一個集合的子集的方法,此方法代碼量極少,分享給大家。
    2016-04-04
  • 輕松學(xué)習(xí)C#的結(jié)構(gòu)和類

    輕松學(xué)習(xí)C#的結(jié)構(gòu)和類

    輕松學(xué)習(xí)C#的結(jié)構(gòu)和類,對C#的結(jié)構(gòu)和類感興趣的朋友可以參考本篇文章,幫助大家更靈活的運用C#的結(jié)構(gòu)和類
    2015-11-11
  • C# datagridview、datagrid、GridControl增加行號代碼解析

    C# datagridview、datagrid、GridControl增加行號代碼解析

    今天這篇文章小編就來給大家分享關(guān)于C# datagridview、datagrid、GridControl增加行號的介紹,主要包括WinForm中datagridview增加行號、WPF中datagrid增加行號、WPF dev控件GridControl增加行號三個內(nèi)容,感興趣等我小伙伴可以參考一下
    2021-10-10
  • C#實現(xiàn)插入排序

    C#實現(xiàn)插入排序

    這篇文章介紹了C#實現(xiàn)插入排序的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08

最新評論