您的位置:首页 > 移动开发 > Unity3D

Unity入门操作_UGUI_事件_030

2017-08-30 20:39 411 查看
Unity3D的uGUI系统的将UI可能触发的事件分为12个类型,即EventTriggerType枚举的12个值。

先以PointerClick为例。这个是用于某点点击事件。其他事件都可以根据相同的办法调用。



实现事件主要有3种方式:

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



步骤一:创建ClickEvent脚本。继承MonoBehaviour和IPointerClickHandler

using UnityEngine;

using System.Collections;

using UnityEngine.EventSystems;

public class Change : MonoBehaviour,IPointerEnterHandler,IPointerExitHandler{

public void OnPointerEnter(PointerEventData eventData)
{
//进入事件
transform.localScale= new Vector3(2,2,2);
}
public void OnPointerExit(PointerEventData eventData)
{
//退出事件
transform.localScale = new Vector3(1,1,1);
}
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}


}

效果如下:



步骤二:实现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();

if (trigger == null)

trigger = transform.gameObject.AddComponent();

// 实例化delegates

trigger.triggers = new List
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity ui 继承 脚本