1.MonoBehaviour 接扣事件
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems;
public class ButtonGai : MonoBehaviour, IPointerDownHandler, IPointerUpHandler {
public void OnPointerDown(PointerEventData eventData) { //鼠标按下事件 }
public void OnPointerUp(PointerEventData eventData) { //鼠标抬起事件 } } 2.图片切换
public Button btn; public Sprite downSprite;
btn.GetComponent<Image>().sprite = downSprite;
3.鼠标点击事件
void Start () {
Button btn = this.GetComponent<Button> ();
btn.onClick.AddListener (OnClick);
}
private void OnClick(){
Debug.Log ("Button Clicked. ClickHandler.");
}
注意: 1.这个 AddListener 每次调用都会添加一个监听,不能放在UpDate里; 2.如果脚本是 DontDestroyOnLoad 的,记得在 AddListener 之前加上 button.onClick.RemoveAllListeners(); 3.如果不想清空按钮所有事件(虽然很少这么做),你可以用 button.onClick.RemoveListener(btnAction);来移除指定事件;
private GameObject buttonObj; 9 private void Start() 10 { 11 buttonObj = GameObject.Find("Button"); 12 buttonObj.GetComponent<Button>().onClick.AddListener(M); 13 buttonObj.GetComponent<Button>().onClick.AddListener(F); 14 } 15 void M() 16 { 17 print("执行了M方法!"); 18 } 19 public void F() 20 { 21 print("执行了N方法!"); 22 }