在实际使用中,UI.Button 的需求往往不止"点一下"这么简单,还可能需要区分按下、抬起,甚至按住后的移动等事件。

Unity 提供了 IPointerDownHandlerIPointerUpHandler 等接口,实现它们即可分别响应按下和抬起。下面是一个示例脚本,按下时触发刹车音效并设置刹车状态,抬起时解除刹车状态:

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using UnityEngine.Events;

public class platformInput : UIBehaviour,IPointerDownHandler,IPointerUpHandler
{
    public void OnPointerUp(PointerEventData ev)
    {
        Debug.Log("up");
        PlayerController.ins._is_brake = false;
    }
   public  void OnPointerDown(PointerEventData ev)
    {
        Debug.Log("down");

        AudioMgr.ins.playBrake();
        PlayerController.ins._is_brake = true;

    }
    public bool Stop()
    {
#if UNITY_STANDALONE_WIN
        return Input.GetKey(KeyCode.D);
#endif
        return false;
    }

}