UGUI按钮事件添加与使用

UGUI是Unity自带的ui组件编辑器,下面就写一下UGUI里面的button组件的事件添加与使用,其它组件的迟点慢慢添加

首先,我们先要创建一个button,这个在Hierachy视图下,直接右键就可以创建了,如图:

这样我们就可以看到Game视图里面,有一个很棒的按钮了,那么我们如何使用这个按钮呢?如何给它添加事件,以及如何触发事件呢?

第一种方式,直接写一个公开的事件,在button组件下onclick窗口下把事件“挂”上去:

1.先写一个c#文件:TestButtonClick.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestButtonClick : MonoBehaviour {

    public void clickBtn()
    {
        Debug.Log("点击了按钮");
    }
}

2.把这个脚本挂到一个一个游戏对象上面,这里我直接把它挂在button上面,如图

3.在button的inspector的OnClick窗口,点击+号,意思就是要给它添加一个事件了,然后把button拉到inspector的Onclick窗口里面,然后选择我们刚刚写好的事件,如图


总结,这种方式的优点:方便,直接写,直接拉,适用于只有点击事件的按钮,缺点:不好管理,而且只有click事件,想做其它效果没发做

第二种方式,直接在代码里面绑定

1.写一个脚本,直接绑定在button上面,如图:

TestButtonClick.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class TestButtonClick : MonoBehaviour {

    // Use this for initialization
    void Start () {
        Button btn = this.GetComponent<Button>();
        btn.onClick.AddListener(onClickBtn);
    }
    
    // Update is called once per frame
    void Update () {
        
    }

    private void onClickBtn()
    {
        Debug.Log("第二种方式点击了按钮");
    }

}

总结,优点,跟第一种差不多,但是比第一种好管理,缺点,跟第一种一样

第三种方式:通过EventTrigger实现按钮点击

1.写一个脚本,直接绑定在button上面,如图:

TestButtonClick.cs

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

[RequireComponent(typeof(UnityEngine.EventSystems.EventTrigger))]
public class TestButtonClick : MonoBehaviour
{

    // Use this for initialization
    void Start()
    {
        Button btn = this.GetComponent<Button>();
        EventTrigger trigger = btn.gameObject.GetComponent<EventTrigger>();
        EventTrigger.Entry entry = new EventTrigger.Entry();

        //鼠标点击
        entry.eventID = EventTriggerType.PointerClick;
        //鼠标进入
        //entry.eventID = EventTriggerType.PointerEnter;
        //鼠标移出
        //entry.eventID = EventTriggerType.PointerExit;
        entry.callback = new EventTrigger.TriggerEvent();
        entry.callback.AddListener(onClick);
        trigger.triggers.Add(entry);
    }

    private void onClick(BaseEventData pointData)
    {
        Debug.Log("第三种方式点击按钮");
    }

    private void onMouseMove(BaseEventData pointData)
    {
        Debug.Log("鼠标经过");
    }
}
总结,优点,几乎button涵盖到的事件,都可以实现,缺点:无




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值