首页 > 编程知识 正文

点击事件和触摸事件的区别,事件触发的三种方式

时间:2023-05-03 05:12:46 阅读:218159 作者:3458

Unity3D的uGUI系统的将UI可能触发的事件分为12个类型,即EventTriggerType枚举的12个值。

先以PointerClick为例。这个是用于某点点击事件。其他事件都可以根据相同的办法调用。
实现事件主要有3种方式:

方式一:继承基础接口实现


步骤一:创建ClickEvent脚本。继承MonoBehaviour和IPointerClickHandler
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public class ClickEvent : MonoBehaviour,IPointerClickHandler {
     public void OnPointerClick (PointerEventData eventData)
     {
        Debug.Log("点击了我");
     }
}
步骤二:实现public void OnPointerClick(PointerEventData eventData)方法:
步骤三:创建一个名为Panel_IPointer的UI对象。并且将ClickEventt脚本附加到对象上。
步骤四:启动,并点击Panel_IPointer对象。在Console输出如下:
方式二:Unity3D编辑器操作设置实现
步骤一:创建一个C#脚本。在脚本中添加一个public方法。

步骤二:创建一个命名为Empty的UI对象,用于接收和响应点击事件。创建一个名为Panel的UI对象,用于触发点击事件。

步骤三:Panel对象添加EventTrigger组件," Add New" -> 选择" PointerClick"。将Empty对象拖拽到触发者位置。然后点击"No Function"选择我们写在Test脚本中的OnTestClick事件。

方式三:程序动态设置实现
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;

public class ClickTest : MonoBehaviour {

// Use this for initialization
void Start ()
{
var trigger = transform.gameObject.GetComponent<EventTrigger>();
if (trigger == null)
trigger = transform.gameObject.AddComponent<EventTrigger>();

// 实例化delegates
trigger.triggers = new List<EventTrigger.Entry>();

// 定义需要绑定的事件类型。并设置回调函数
EventTrigger.Entry entry = new EventTrigger.Entry();
// 设置 事件类型
entry.eventID = EventTriggerType.PointerClick;

// 设置回调函数
entry.callback = new EventTrigger.TriggerEvent();
UnityAction<BaseEventData> callback = new UnityAction<BaseEventData>(OnScriptControll);
entry.callback.AddListener(callback);
// 添加事件触发记录到GameObject的事件触发组件
trigger.triggers.Add(entry);
}
public void OnScriptControll(BaseEventData arg0)
{

Debug.Log("Test Click");
}
}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。