Last Updated on 2021-10-28 by Clay
在 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
- https://docs.unity3d.com/530/Documentation/ScriptReference/UI.Button.html
- https://docs.unity3d.com/2019.1/Documentation/ScriptReference/UI.Button-onClick.html