按下按钮时触发的 UnityEvent。
使用 UnityEvent.AddListener 可扩展 onClick 单击事件。释放按下的 Button 时会调用添加的 UnityAction。一个 Button 可以有多个监听器。例如,在下面的脚本示例中,btn3
可以添加 TaskOnClick
作为第二个监听器调用。
请注意需要在 onClick 之前调用 EventType.MouseDown 和 EventType.MouseUp。
// To use this example, attach this script to an empty GameObject. // Create three buttons (Create>UI>Button). Next, select your // empty GameObject in the Hierarchy and click and drag each of your // Buttons from the Hierarchy to the Your First Button, Your Second Button // and Your Third Button fields in the Inspector. // Click each Button in Play Mode to output their message to the console. // Note that click means press down and then release.
using UnityEngine; using UnityEngine.UI;
public class Example : MonoBehaviour { //Make sure to attach these Buttons in the Inspector public Button m_YourFirstButton, m_YourSecondButton, m_YourThirdButton;
void Start() { //Calls the TaskOnClick/TaskWithParameters/ButtonClicked method when you click the Button m_YourFirstButton.onClick.AddListener(TaskOnClick); m_YourSecondButton.onClick.AddListener(delegate {TaskWithParameters("Hello"); }); m_YourThirdButton.onClick.AddListener(() => ButtonClicked(42)); m_YourThirdButton.onClick.AddListener(TaskOnClick); }
void TaskOnClick() { //Output this to console when Button1 or Button3 is clicked Debug.Log("You have clicked the button!"); }
void TaskWithParameters(string message) { //Output this to console when the Button2 is clicked Debug.Log(message); }
void ButtonClicked(int buttonNo) { //Output this to console when the Button3 is clicked Debug.Log("Button clicked = " + buttonNo); } }