国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)

這篇具有很好參考價(jià)值的文章主要介紹了unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

該文來(lái)是學(xué)習(xí)chutianbo老師的筆記,鏈接b站

UI的創(chuàng)建

1.右鍵Hierarchy空白處 UI?canvas
unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)
2.這里一共使用了三個(gè)素材
unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)
unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)
層級(jí)結(jié)構(gòu)
unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)
UI:初始畫(huà)布
characters:頭像
Mask:遮罩層
healthbar:血條
這里我們先回到UI(也就是一開(kāi)始創(chuàng)建的Canvas)
我們一開(kāi)始有用的應(yīng)該只有渲染模式render Mode,他有三種模式
Screen Space - Overlay:這是默認(rèn)模式,可以讓 Unity 在始終在游戲的上層繪制 UI。大多數(shù)應(yīng)用程序使用此模式,因?yàn)樗鼈兿M?UI 始終位于最上層以便提供所有信息。
Screen Space - Camera:這種模式在與攝像機(jī)對(duì)齊的平面上繪制 UI。平面的大小確定為始終填充整個(gè)屏幕,這樣你就可以四處移動(dòng)攝像機(jī),并且平面將隨攝像機(jī)一起移動(dòng),從而顯示與 Overlay 圖形相同的形狀。但是,由于平面是在世界中繪制的,而不是在屏幕上層繪制的,因此世界中的對(duì)象可以繪制在 UI 的上層。
World Space:這種模式可在世界中的任何位置繪制平面。例如,你可以將此平面用作游戲中的計(jì)算機(jī)屏幕,或者用作墻壁,或者放在角色的上層。這在 3D 游戲中更有用,因?yàn)?UI 會(huì)隨著距離變小。

3.關(guān)于拉動(dòng)之后圖像沒(méi)有隨著一起變化
這里就要使用錨點(diǎn)unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)
就是頭像四周的小三角形,它可以使我們的子物體在父物體固定的位置上隨著父物體變化
4.遮罩層
第一步
unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)
第二步
unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)
第三步
unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)
把這個(gè)勾去掉
當(dāng)然記得把錨點(diǎn)設(shè)好
unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)
這里unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)
可以使用alt+右下角那個(gè)直接填充父物體,血條填充到遮罩層

5.bug時(shí)間
這樣子做的話,在后面使用代碼控制遮罩層縮減時(shí)會(huì)出現(xiàn)兩端縮小,而不是血條向右減少的過(guò)程。
所以記得把Mask的pivot(就是中間那個(gè)藍(lán)點(diǎn))拉到left center(左邊中間);

關(guān)于代碼控制血條變化

主要思路是當(dāng)血條變化時(shí),遮罩層減少,使血條變短;
官方解釋:遮罩是 UI 系統(tǒng)中的一種技術(shù),利用這種技術(shù)可以將一張圖像用作其他圖像的“遮罩”。我們可以看成是第一張圖像充當(dāng)一個(gè)模板。第二張圖像中與第一張圖像重疊的部分是可見(jiàn)的,但另一部分則是隱藏的
創(chuàng)建一個(gè)UI腳本下掛到我們的HealthFrame

public class UIHealthBar : MonoBehaviour
{
    // Start is called before the first frame update
    //創(chuàng)建共有靜態(tài)對(duì)象。獲取血條本身
    public static UIHealthBar Instance { get; private set; }
    public Image Mask;
    float orignalSize;
    private void Awake()
    {
        Instance = this;
    }
    void Start()
    {
        //設(shè)置靜態(tài)實(shí)例為當(dāng)前類對(duì)象
        orignalSize = Mask.rectTransform.rect.width;
    }
    //創(chuàng)建一個(gè)方法,用來(lái)設(shè)置現(xiàn)在mask遮罩層的寬度
    public void SetValue(float value)
    {
        //設(shè)置更改mask遮罩層寬度,根據(jù)傳輸過(guò)來(lái)的寬度進(jìn)行更改
        Mask.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, orignalSize * value);
    }
    
}

之后在我們主角血量變化函數(shù)中調(diào)用即可

  UIHealthBar.Instance.SetValue(currentHealth / (float)maxHealth);

簡(jiǎn)易的音頻使用

這里我們就會(huì)用到 Audio Source的組件
unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)
下面說(shuō)起來(lái)比較重要的
AudioClip——加入的音樂(lè)素材
Mute——禁音
volume——音量
Play on awake——在游戲開(kāi)始時(shí)播放
Spatial Blend 2d——3d 2d就是全圖播放都是一個(gè)音量,可以用作bgm,越拉向3d就越立體,會(huì)出現(xiàn)方位和位置距離的差別
底下那個(gè)函數(shù),指的就是最小距離1時(shí)音量達(dá)到最大,500時(shí)聽(tīng)不見(jiàn)音樂(lè);

關(guān)于代碼控制音頻

和使用其他組件一樣

  1. AudioSource audioSource;
  2. 在start中實(shí)例化 audioSource = GetComponent();
    3.播放即可,clip即為音頻,需要可以自己公開(kāi)一個(gè)加進(jìn)去;
    public void PlaySound(AudioClip clip)
    {
    //可以有第二個(gè)參數(shù)音量0-1.0f
    audioSource.PlayOneShot(clip);
    }

關(guān)于NPC的氣泡實(shí)現(xiàn)

unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)
這里主要使用了TextMeshPro 創(chuàng)建方式也是在UI中找到就行
下為結(jié)構(gòu)圖
unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)
Dialog:canvas
Image:外面那個(gè)背景畫(huà)
Text:TextMeshPro

問(wèn)題1:關(guān)于字?jǐn)?shù)過(guò)長(zhǎng)會(huì)溢出
unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)
在overflow中改為page即可
問(wèn)題2:無(wú)法顯示中文:
需要自己下字體包,或者去文章底部看老師的gitee中有下載鏈接
問(wèn)題3:如何翻頁(yè):
使用代碼控制,下附代碼
腳本掛給NPC,事件發(fā)起交給主角;

public class NonPlayerCharacter : MonoBehaviour
{
 public float displaytime=4.0f;
    public GameObject dialogBox;
    float timerDisplay;
    public GameObject dlgTMP;
    TextMeshProUGUI tmTxtBox;
    int totalPages;
    int currentPage = 1;
     void Start()
    {
        dialogBox.SetActive(false);
        timerDisplay = -1.0f;
        tmTxtBox = dlgTMP.GetComponent<TextMeshProUGUI>();
    }
    private void Update()
    {
        totalPages = tmTxtBox.textInfo.pageCount;
        if (timerDisplay >= 0)
        {
            timerDisplay -= Time.deltaTime;
            if (Input.GetKeyUp(KeyCode.Space))
            {
                if (currentPage < totalPages)
                {
                    
                    currentPage++;
                }
                else
                {
                    currentPage = 1;
                }
                
                tmTxtBox.pageToDisplay = currentPage;
            }
        }
        else
        {
            dialogBox.SetActive(false);
        }
    }
    public void DisplayDialog()
    {
        timerDisplay = displaytime;
        dialogBox.SetActive(true);

    }

關(guān)于和NPC的互動(dòng)實(shí)現(xiàn)

使用射線碰撞對(duì)象實(shí)現(xiàn),我們的NPC對(duì)象需要放到NPC層(自己創(chuàng)一個(gè)layer);

 if (Input.GetKeyDown(KeyCode.F))
        {
            RaycastHit2D hit =Physics2D.Raycast(rigidbody2dRuby.position+Vector2.up*0.2f,lookDirection,1.5f,LayerMask.GetMask("NPC"));
            if(hit.collider!=null)
            {
                Debug.Log($"對(duì)象是{hit.collider.gameObject}");
                NonPlayerCharacter npc = hit.collider.GetComponent<NonPlayerCharacter>();
                if (npc != null)
                {
                    npc.DisplayDialog();
                }
            }
        }

鏈接:chutianbo老師關(guān)于UI的介紹
鏈接:chutianbo老師字體下載文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-400145.html

到了這里,關(guān)于unity初學(xué)6——簡(jiǎn)易的UI制作(血條制作)和音頻加入以及NPC的對(duì)話氣泡(2d)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Unity】簡(jiǎn)易俄羅斯方塊(Tetris)制作

    【Unity】簡(jiǎn)易俄羅斯方塊(Tetris)制作

    原視頻:https://www.youtube.com/watch?v=T5P8ohdxDjo b站轉(zhuǎn)載:【UNITY】13分鐘制作出俄羅斯方塊?。ǜ较螺d)_嗶哩嗶哩_bilibili 一、背景及方塊制作關(guān)鍵點(diǎn) 1、要將背景的左下角移到坐標(biāo)(0,0)點(diǎn) 2、方塊的旋轉(zhuǎn)點(diǎn)設(shè)置 3、方塊坐標(biāo)需要在整數(shù)值 二、腳本 1、TetrisBlock

    2024年02月05日
    瀏覽(23)
  • Unity 簡(jiǎn)易UI管理器

    Unity 簡(jiǎn)易UI管理器

    首先我們需要先定義這么一個(gè)UIManager類。 public class UIManager { } UI管理器嘛,顧名思義肯定是用來(lái)管理我們游戲中的UI的,而我們游戲當(dāng)中的UI呢一般是以面板為單位來(lái)進(jìn)行劃分的。所以我們還需要一個(gè)UI面板類。然后通過(guò)我們的UI管理器來(lái)管理我們的UI面板。 public class UIPanel {

    2024年02月09日
    瀏覽(18)
  • Unity初學(xué)注意事項(xiàng),以及最新如何刪除云端項(xiàng)目

    Unity初學(xué)注意事項(xiàng),以及最新如何刪除云端項(xiàng)目

    作為一個(gè)對(duì)好玩的事感興趣的人 近段時(shí)間我開(kāi)始學(xué)習(xí)Unity了 首先呢,我們得先了解Unity是用于開(kāi)發(fā)游戲的一個(gè)開(kāi)源軟件(當(dāng)然他的專業(yè)版還是要收費(fèi)的,這里指的個(gè)人版,初學(xué)者都是夠用的,個(gè)人版開(kāi)發(fā)的游戲也可以發(fā)布,只要游戲所賺的金額不超過(guò)100000元都是可以不用換的

    2024年02月07日
    瀏覽(24)
  • Unity基礎(chǔ) 音頻組件以及音頻播放

    Unity基礎(chǔ) 音頻組件以及音頻播放

    在游戲開(kāi)發(fā)中,聲音是一個(gè)重要的環(huán)節(jié)。Unity中的聲音組件可以幫助開(kāi)發(fā)者輕松地控制游戲中音頻的播放、音量、循環(huán)等屬性,從而實(shí)現(xiàn)更好的游戲體驗(yàn)。本文將詳細(xì)介紹Unity聲音組件的相關(guān)概念和技術(shù),以及其在游戲、影視等領(lǐng)域的廣泛應(yīng)用和發(fā)展前景。 ??????在Unity中想

    2024年02月11日
    瀏覽(18)
  • Unity快速入門(mén)教程-制作一個(gè)簡(jiǎn)易版的計(jì)時(shí)器Time.deltaTime

    制作游戲的時(shí)候,可能會(huì)需要到一個(gè)計(jì)時(shí)器,本篇文章附完整計(jì)時(shí)器代碼 本文將簡(jiǎn)單介紹 一次計(jì)時(shí)器 和 循環(huán)計(jì)時(shí)器 的代碼 Time.deltaTime是幀與幀相減出來(lái)的,即 Time.deltaTime=后一幀時(shí)間-前一幀時(shí)間 ,計(jì)算結(jié)果由你的電腦配置而定,不是固定值。由于Time.deltaTime的結(jié)果是由后一

    2024年02月12日
    瀏覽(31)
  • U3D游戲角色血條制作并顯示血量變化

    U3D游戲角色血條制作并顯示血量變化

    關(guān)鍵:利用Slider來(lái)制作血條 大概效果: 數(shù)字會(huì)隨著血量變化而變化。 步驟 1、在層級(jí)面板中右擊,選擇UI中的Slider. 2、創(chuàng)建好后,將Slider命名為HealthBar,可以看到層級(jí)面板中Slider的結(jié)構(gòu)為,刪掉其中的“Handle Slide Area”. 3、在層級(jí)面板選中HealthBar,在右側(cè)的檢查器窗口可以看到

    2024年02月09日
    瀏覽(33)
  • Unity 血條及“掉血”緩沖效果

    Unity 血條及“掉血”緩沖效果

    ?視頻教程:https://www.bilibili.com/video/BV1WJ411778C/?spm_id_from=333.999.0.0vd_source=4a4c35da6aef7094d5990c213c39aa09 使用素材(推薦使用GitZip for github下載):https://github.com/zheyuanzhou/Youtube-Unity-Tutorial/tree/master/EP45_Health%20Bar/Sprites 效果如下圖所示: 首先在場(chǎng)景中創(chuàng)建一個(gè)新的Canvas,并命名為He

    2024年02月02日
    瀏覽(26)
  • 【Unity UIToolkit】UIBuilder基礎(chǔ)教程-制作簡(jiǎn)易的對(duì)話系統(tǒng)編輯器 3步教你玩轉(zhuǎn)Unity編輯器擴(kuò)展工具

    【Unity UIToolkit】UIBuilder基礎(chǔ)教程-制作簡(jiǎn)易的對(duì)話系統(tǒng)編輯器 3步教你玩轉(zhuǎn)Unity編輯器擴(kuò)展工具

    隨著Unity開(kāi)發(fā)的深入,基本的Unity編輯器界面并不能滿足大部分玩家高階開(kāi)發(fā)的要求。為了提高開(kāi)發(fā)的效率,有針對(duì)性的定制化擴(kuò)展編輯器界面是提高開(kāi)發(fā)效率的不錯(cuò)選擇。 今天就給大家?guī)?lái)Unity官方提高的編輯器擴(kuò)展工具UIToolkit(集成了UIBuilder和UI Debugger等插件)的使用教程。

    2024年02月04日
    瀏覽(77)
  • Unity實(shí)現(xiàn)各種樣式的血條

    Unity實(shí)現(xiàn)各種樣式的血條

    我將講述三種不同類型血條UI的實(shí)現(xiàn) 第一種是常見(jiàn)的進(jìn)度條樣式的血條實(shí)現(xiàn): 進(jìn)度條式的血條樣式如圖示 要實(shí)現(xiàn)進(jìn)度條式的血條,我們需要使用到unity的UI中的滑動(dòng)條,它分為Slider滑動(dòng)條,Background滑動(dòng)條的背景,F(xiàn)ill Area填充條,這個(gè)組件就類似于進(jìn)度條不過(guò)帶了一個(gè)可以按住

    2024年02月03日
    瀏覽(19)
  • unity 3種辦法實(shí)現(xiàn)血條效果并實(shí)現(xiàn)3d世界血條一直看向攝像機(jī)

    unity 3種辦法實(shí)現(xiàn)血條效果并實(shí)現(xiàn)3d世界血條一直看向攝像機(jī)

    普通血條欄: 漸變色血條欄: 緩沖血條欄: 3D場(chǎng)景血條欄跟隨玩家移動(dòng): 在Canvas下創(chuàng)建一個(gè)空物體HP bar,在空物體下方創(chuàng)建3個(gè)Image,分別為血條框bar 黑色,最大HP maxHP 白色,和當(dāng)前HP currentHP 紅色。(PS:注意先后順序以調(diào)整顯示的圖層) 效果: 點(diǎn)擊HP bar,添加slider(滑塊)

    2024年02月11日
    瀏覽(100)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包