Skip to content

[Unity] 按鈕按下、釋放事件(OnPointerDown, OnPointerUp)

在 Unity 中的 UI 布局元件已經自帶了按鈕元件,可以讓我們簡單地撰寫按下按鈕時會觸發的行動。然而,若是有需要分別設定按鈕『按下時』與『釋放時』的事件,則我們可以使用腳本繼承 Button 類別,再分別重寫 OnPinterDown() 事件與 OnPointerUp() 事件。


範例

首先,我們製作出 Button 元件,並將其放大至畫面正中央。


接著,再將其掛上腳本 myButtonEvent.cs。這個腳本會抓取底下 Text 子元件,並在觸發事件時更改文字。

using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class myButtonEvent : Button
{
    // Button is Pressed
    public override void OnPointerDown(PointerEventData eventData)
    {
        base.OnPointerDown(eventData);
        gameObject.GetComponentInChildren<Text>().text = "Pressed";
    }

    // Button is released
    public override void OnPointerUp(PointerEventData eventData)
    {
        base.OnPointerUp(eventData);
        gameObject.GetComponentInChildren<Text>().text = "Released";

    }
}


Output:

按下時
釋放時

如此一來就完成了。若有其他更複雜的功能,請參閱下方 References 第一條連結的文檔。


References


Read More

Tags:

Leave a Reply