一個特效藥 讓你Unity3D GUI Button 馬上有按鈕事件音效

UIbuttonsound特效藥

目標:

Unity3D 有很多方法可以做出Button 音效,本文要介紹的是我自己針對初學者撰寫的Script,讓設計人員可以非常簡單地 、步驟最少地,直接把這個程式綁到Button元件上面,立即可以產生 – Mouse On / Hover 以及Click 音效。

Script 內容:

//Easy Script for button sound event: Hover & Click sound by JS 2019
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections;

public class UIButtonSound : MonoBehaviour, IPointerEnterHandler
{

public AudioClip ClickedSound;
public AudioClip HoverSound;

//get button component
private Button button { get { return GetComponent<Button>(); } }
// get audiosource
private AudioSource source { get { return GetComponent<AudioSource>(); } }


void Start()

{
    //bind an AudioSource on its
    gameObject.AddComponent<AudioSource>();
    //set default sound
    source.clip = HoverSound;

    source.playOnAwake = false;


    button.onClick.AddListener(() => PlayClickSoud());


}

public void OnPointerEnter(PointerEventData eventData)
{
    if (eventData == null)
    {
        throw new System.ArgumentNullException(nameof(eventData));
    }

    source.clip = HoverSound;
    source.PlayOneShot(HoverSound);
}

void PlayClickSoud()

{

    source.clip = ClickedSound;
    source.PlayOneShot(ClickedSound);

}
}

使用方法:

  • 先到Unity3D 新增一個 UIButtonSound.CS ,注意此處檔案名必須一樣,才能正確。
  • 雙擊這個 UIButtonSound.CS ,開啟編輯器。
  • 把上面我撰寫的CODE直接貼入,然後存檔。
  • 點選要增加音效的Button,看右邊的檢視器,下方有Add Component。
  • 點選Add Component後,可在Component搜尋列裡面,打入UI讓它自動搜尋出UI Button Sound。
UI button sound
  • 新增後,會出現兩個外部音訊物件的變數名,Clicked Sound ;以及Hover Sound。
  • 直接拖曳,想要的音效檔案。立即完成。

開發思路:

若有喜歡開發程式的人可以參考一下,此段程式碼,最核心的思路就是在一開始的時候自動綁上一個Audio Source,並透過OnPointerEnter去偵測滑鼠是否在Button上方。並觸發兩個Function,一個是撥放 Hover音效的Function,另一個則是發出Click音效的Function。

另外小提醒,在Unity3D的世界中,若有Audio Source,則需要透過Audio Listener 才能聽到聲音。也就是可以想像成,要有一個來源喇叭( Audio Source ),還要有一個耳朵( Audio Listener )才能正確地聽到想要撥放的聲音檔案。

小結:

這是一個針對初學者撰寫最容易、步驟也最少的使用方式,其他方法有很多種;例如:使用外部插件NGUI、混合使用按鈕Event中的Click()的方式等等,未來可以慢慢介紹。簡單來說,就是要能做到四個步驟,

1. 滑鼠移動到按鈕上時要能偵測的到。
2. 偵測到後,撥出聲音。
3. 直接透過Click event觸發,撥放按下按鈕的聲音。
4. 確保Audio source 與 Listener 有正確綁上按鈕元件

總之,使用本Script,只要透過簡單的拖曳,即可完成按鈕事件的基本音效設定。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *