Unity实现UI按钮Button的按下、抬起、移出、移入事件

这篇具有很好参考价值的文章主要介绍了Unity实现UI按钮Button的按下、抬起、移出、移入事件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实现思路,

1、重新写类,继承Button,在类中实现相关的事件响应。

2、将类挂载到Cavas下创建的Button按钮上,挂载之前需先移除Button默认的组件button。

3、编写代码给按钮添加事件,这一步与默认的 onClick.AddListener 用法没什么区别。

个人认为这种方法比较灵活,做个记录,方便使用。

注意事项:

1、在脚本中引用Button按钮时,类型要写自己重写后的类名,而不是原来的Button类型,这里是MyButton,因为在查找到按钮时,GetComponent<>时,尖括号中的类型就是定义的MyButton,这样才能添加对应的事件。

MyButton类的代码如下:


using UnityEngine.EventSystems;
using UnityEngine.UI;
using TMPro;
using UnityEngine.Events;

public class MyButton : Button,IPointerExitHandler,IPointerEnterHandler
{
    public UnityEvent onButtonDown;
    public UnityEvent onButtonUp;
    public UnityEvent onButtonExit;
    public UnityEvent onButtonEnter;
    // 当按钮被按下时调用
    public override void OnPointerDown(PointerEventData eventData)
    {
        base.OnPointerDown(eventData);
        if (onButtonDown != null)
            onButtonDown.Invoke();
        //gameObject.GetComponentInChildren<TMP_Text>().text = "Pressed";
    }

    // 当按钮被抬起时调用
    public override void OnPointerUp(PointerEventData eventData)
    {
        base.OnPointerUp(eventData);
        if (onButtonUp != null)
            onButtonUp.Invoke();
        //gameObject.GetComponentInChildren<TMP_Text>().text = "Released";
    }

    // 当鼠标从按钮上离开时调用
    public override void OnPointerExit(PointerEventData eventData)
    {
        base.OnPointerExit(eventData);
        if (onButtonExit != null)
            onButtonExit.Invoke();
        //gameObject.GetComponentInChildren<TMP_Text>().text = "Exit";
    }

    // 当鼠标从外面进入到按钮上方时调用
    public override void OnPointerEnter(PointerEventData eventData)
    {
        base.OnPointerEnter(eventData);
        if (onButtonEnter != null)
            onButtonEnter.Invoke();
        //gameObject.GetComponentInChildren<TMP_Text>().text = "Enter";
    }
}

使用方法的示例代入如下截图中所示:

Unity实现UI按钮Button的按下、抬起、移出、移入事件,unity,ui,游戏引擎文章来源地址https://www.toymoban.com/news/detail-839777.html

到了这里,关于Unity实现UI按钮Button的按下、抬起、移出、移入事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android学习之路(5) UI控件之Button (按钮)与 ImageButton (图像按钮)

    本节引言: 今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮; 其实ImageButton和Button的用法基本类似,至于与图片相关的则和后面ImageView相同,所以本节 只对Button进行讲解,另外Button是TextView的子类,所以TextView上很多属性也可以应用到

    2024年02月12日
    浏览(37)
  • Android学习之路(4) UI控件之Button (按钮)与 ImageButton (图像按钮)

    本节引言: 今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮; 其实ImageButton和Button的用法基本类似,至于与图片相关的则和后面ImageView相同,所以本节 只对Button进行讲解,另外Button是TextView的子类,所以TextView上很多属性也可以应用到

    2024年02月12日
    浏览(41)
  • 【Unity】Button基础-按钮更换图片样式

    话说,今天修改了一下项目中的内容,发现按钮不怎么好看,想用图片的方式改一改,然后点开Button,忽然发现好多内容都忘记了。。。 Transition(过渡方式):按钮在状态改变时自身的过渡方式: Color Tint(颜色改变)  Sprite Swap(图片切换)  Animation(执行动画)(后面有

    2023年04月14日
    浏览(41)
  • Unity UGUI之Button按钮点击事件

    组件基本知识:Unity UGUI之Button控件的简单认识-CSDN博客 按钮添加点击事件虽然比较简单,但是使用不同的方法灵活应用开发起来效率会更高。 1、当我们控制Unity一些组件的事件是组件本身自带的,那么我们就可以考虑直接通过Button的On Click()中“+”按钮,添加一个新事件,然

    2024年02月05日
    浏览(41)
  • iOS开发Swift-3-UI与按钮Button-摇骰子App

    1.创建新项目Dice  2.图标  删去AppIcon,将解压后的AppIcon.appiconset文件拖入Assets包。  3.将素材点数1-6通过网页制作成2x,3x版本并拖入Asset。  4.设置对应的UI。  5.拖入Button组件并设置style。  6.Ctrl加拖拽将Button拖拽到ViewController里,并设置Connection,Name等,并点击Connect。  同样

    2024年02月11日
    浏览(41)
  • Unity中,点击按钮Button,控制,动画Animator暂停播放

    在Unity中,你可以使用以下脚本来实现点击按钮时停止动画的功能: using UnityEngine; using UnityEngine.UI; public class StopAnimationOnClick : MonoBehaviour {     public Animator animator;     public Button button;     private bool isAnimationPlaying = true;     private void Start()     {         button.onClick.AddListen

    2024年04月27日
    浏览(41)
  • element ui 中el-button按钮 , 动态设置el-button的type 即显示颜色

    例一: html: JS: 例二: js:

    2024年02月11日
    浏览(42)
  • WPF MvvM框架(MvvMLight,Microsoft Toolkit Mvvm,CommunityToolkit.Mvvm;鼠标,键盘,手写等事件绑定如:抬起按下事件)

    目录 1.MvvMLight(已废弃) 2. Microsoft Toolkit Mvvm(已废弃)  3.CommunityToolkit.Mvvm框架 4.Mvvm中的事件绑定 4.1 DataGrid表中按钮点击事件 4.2 绑定 鼠标事件,键盘事件,手写笔事件,多点触控事件 5.和PLC设备建立联系(联调)    本文中,继承接口,同步数据方法,command用法均一致; 1.继

    2024年02月04日
    浏览(55)
  • 【Unity-UGUI控件全面解析】| Button 按钮组件详解

    🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发

    2024年02月05日
    浏览(50)
  • 【Unity VR开发】结合VRTK4.0:创建一个按钮(Button)

    天若阻我,我便撕裂这天!地若拦我,我便踏碎这地! 在3D空间中,我们往往需要设置空间按钮,通过交互器或指针与之交互的可碰撞来实现。接下来我们设置一个简单的按钮,可以使用对象指针进行选择,以启动按钮的点击,使用预制件表示我们的按钮,并使用可与按钮交互

    2024年02月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包