Unity UGUI 给Image添加点击事件的三种方式

Button

在 Image 上面添加一个 Button 组件,将 Button 组件的过渡效果 Transition 设置为 None,并挂上测试脚本组件(BtnOnClickTest.cs):

BtnOnClickTest.cs

using UnityEngine;
using UnityEngine.UI;

public class BtnOnClickTest : MonoBehaviour
{
    private void Awake()
    {
        GetComponent<Button>().onClick.AddListener(OnClickCallBack);
    }

    private void OnClickCallBack()
    {
        Debug.Log("BtnOnClickTest OnClick");
    }
}

EventTrigger

直接在 Image 上面挂上测试脚本组件(EventTriggerTest.cs):

EventTriggerTest.cs

using UnityEngine;
using UnityEngine.EventSystems;

public class EventTriggerTest : MonoBehaviour
{
    private void Awake()
    {
        EventTrigger eventTrigger = gameObject.GetComponent<EventTrigger>();
        if (eventTrigger == null)
        {
            eventTrigger = gameObject.AddComponent<EventTrigger>();
        }
        eventTrigger.AddEventTriggerListener(EventTriggerType.PointerClick, onClick);
    }

    private void onClick(BaseEventData data)
    {
        Debug.Log("EventTriggerTest OnClick");
    }
}

AddEventTriggerListener 拓展方法:

public static void AddEventTriggerListener(this EventTrigger eventTrigger, EventTriggerType triggerType, UnityAction<BaseEventData> action)
{
    EventTrigger.Entry entry = eventTrigger.triggers.Find((trigger) => trigger.eventID == triggerType);
    if (entry == null)
    {
        entry = new EventTrigger.Entry() { eventID = triggerType };
        eventTrigger.triggers.Add(entry);
    }
    entry.callback.AddListener(action);
}

ps:

EventTrigger 的事件类型 EventTriggerType 有很多,如下 :

IPointerClickHandler

直接在 Image 上面挂上测试脚本组件(IPointerTest.cs):

IPointerTest.cs

using UnityEngine;
using UnityEngine.EventSystems;

public class IPointerTest : MonoBehaviour, IPointerClickHandler
{
    public void OnPointerClick(PointerEventData eventData)
    {
        Debug.Log("IPointerTest OnClick");
    }
}

ps:

1、除了点击事件的接口 IPointerClickHandler 之外,还有很多其他的事件接口,例如:

更多关于事件接口的详细内容可查看 Unity UGUI事件接口概述

2、VS中快速实现接口的成员方法:

  • 点击“显示可能的修补程序”:

  • 点击“实现接口”:

  • 自动实现了接口的成员方法:

 

Unity UGUIUnity游戏开发中常用的用户界面实现方法。UGUIUnity自带的用户界面系统,可以通过创建UI元素来构建游戏的界面。在Unity中,UGUI可通过创建Button、Text、Image等UI组件来实现交互和展示。 在UGUI中,通常选择ISO模型进行2D平面开发。通过锁定界面可以防止镜头发生偏移,确保界面的稳定性。 添加Button点击事件的方法如下: 1. 在Hierarchy面板中创建一个空物体GameObject。 2. 在Project面板中创建一个新的C#脚本,命名为OnClickButton,并将该脚本添加到GameObject上。 3. 双击OnClickButton脚本,在打开的脚本编辑器中输入相应的代码。该代码的作用是在点击按钮后输出"You click the button."和若干次"Yes"。 4. 在Click方法中使用print函数输出相关信息,并通过循环打印"Yes"特定次数。 5. 完成脚本的编写后,将脚本保存并返回Unity编辑器界面。 以上是关于Unity UGUI的简要介绍和Button点击事件添加方法。希望对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [超详细的Unity UGUI教学](https://blog.csdn.net/qq_37701948/article/details/106682377)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fightsyj

您的鼓励将是我分享的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值