Unity4.6 UI按钮绑定事件(四)

 

The events that are supported by the StandaloneInputModule and TouchInputModule are provided by interface and can be implemented on a MonoBehaviour by implementing the interface. If you have a valid EventSystem configured the events will be called at the correct time.

阅读这段Unity3d的官方文档我们会发现Unity4.6 UI,有一种更简单的方式来监听Button按钮的点击,MouseIn鼠标滑入,MouseOut鼠标滑出等事件,那就是我们我们可以通过实现各个事件的接口类来自定义事件。

三、通过MonoBehaviour 来实现事件类接口来实现事件的监听

第一步:通过Hierarchy面板创建button(详细参考Unity4.6 UI按钮绑定事件(一))

第二步:创建一个名为EventHandler的脚本,代码如下


using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class EventHandler : MonoBehaviour, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler, IPointerDownHandler, IDragHandler
{
public void OnPointerClick(PointerEventData eventData)
{
if (eventData.pointerId == -1)
Debug.Log("Left Mouse Clicked");
if (eventData.pointerId == -2)
Debug.Log("Right Mouse Clicked");
}

public void OnPointerEnter(PointerEventData eventData)
{
Debug.Log("Pointer Enter");
}

public void OnPointerExit(PointerEventData eventData)
{
Debug.Log("Pointer Exit");
}

public void OnPointerDown(PointerEventData eventData)
{
Debug.Log("Pointer Down");
}

public void OnDrag(PointerEventData eventData)
{
Debug.Log("Dragged");
}
}

More

Unity4.6 UI按钮绑定事件(三)

 

我们会发现Unity4.6 UI新的UI系统中Button默认只提供了Onclick的调用方法,有时我们不仅仅想监听Button的Click事件,同时还需要监听MouseIn(鼠标进入事件)MouseOut(鼠标滑出事件).
这时我们就需要借助新的UI系统中EventTrigger脚本来实现,下面我们来学习一下,首先我们看一下如何通过EventTrigger来实现按钮点击Click事件.

第一步:通过Hierarchy面板创建button(详细参考Unity4.6 UI按钮绑定事件(一))

第二步:创建一个名为EventHandler的脚本,代码如下


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

//需要EventTrigger脚本的支援
[RequireComponent(typeof(UnityEngine.EventSystems.EventTrigger))]
public class EventHandler : MonoBehaviour
{

// Use this for initialization
void Start()
{

Button btn = this.GetComponent<Button>();
UnityEngine.EventSystems.EventTrigger trigger = btn.gameObject.GetComponent<UnityEngine.EventSystems.EventTrigger>();
EventTrigger.Entry entry = new EventTrigger.Entry();
entry.eventID = EventTriggerType.PointerClick;
entry.callback = new EventTrigger.TriggerEvent();
entry.callback.AddListener(Onclick);

trigger.delegates.Add(entry);
}

private void Onclick(BaseEventData pointData)
{
Debug.Log("Button Clicked");

}

}

More

Unity4.6 UI按钮绑定事件(二)

这篇文章我们继续来看一下Unity4.6 UI中第二种将按钮绑定事件的方法

二、通过绑定脚本来绑定事件

首先,第一步,依旧在Hierarchy面板中创建一个Button

More

Unity场景切换进度条插件之Loading Component

 

游戏中很多时候需要进行场景切换,当切换大场景时进度条是必不可少的,下面我们来介绍一款进度条插件Loading Component

资源名称: unity3d脚本 Loading Component 1.2
资源版本: v1.2
资源类型: .unitypackage
资源大小: 748KB
更新时间: 2015-01-21
支持正版: ↓↓↓↓↓↓插件仅用于学习,禁止商用,为了维护您的个人权益,请支持正版↓↓↓↓↓↓
官网地址:https://www.assetstore.unity3d.com/en/#!/content/7885

More

Unity4.6 UI按钮绑定事件(一)

Unity4.6新的UI的又称UGUI,个人感觉跟NGUI和DFGUI(Daikon Forge GUI)有很多相似之处,可视化创建以及关联事件确实很方便,动态创建可以利用创建好的prefab进行实例化,只是在关联事件上有些复杂,现在我们来学习如何来给按钮绑定事件,下面列举三种事件关联方式。

一、可视化创建及事件绑定

第一步:通过Hierarchy面板创建button,如图

ui-demo-1

More

【Unity3D Shader编程】之七 静谧之秋篇: 表面着色器的写法(二)—— 自定义光照模式

 

本文主要讲解了Unity中SurfaceShader的自定义光照模式的写法。

上篇文章中我们已经说到,表面着色器将分为两次讲解,上一篇文章中介绍了表面着色器的基本概念和一些写法,用内置的兰伯特光照模式来进行Surface Shader的书写,而本文将介绍Surface Shader+自定义的光照模式的写法。

OK,言归正传,依然是先来看看本文配套的游戏场景截图。

运行游戏,音乐响起,金黄色的丰收之秋映入眼帘

More

【Unity3D Shader编程】之六 暗黑城堡篇: 表面着色器(Surface Shader)的写法(一)

 
本文主要讲解了Unity中SurfaceShader的具体写法,以及几个常用的CG函数的用法。

在这里先说明一下,表面着色器将分为两次讲解,本文介绍表面着色器的基本概念和一些写法,用内置的兰伯特光照模式来进行Surface Shader的书写,而下次将介绍Surface Shader+自定义的光照模式的写法。

运行游戏,音乐响起,首先是一个欧式风格的集市映入眼帘:
 
 

More

【Unity3D Shader编程】之五 圣诞夜篇: Unity中Shader的三种形态对比&混合操作合辑

 

本文算是固定功能Shader的最后一篇,下一次更新应该就会开始讲解表面Shader,而讲解完表面Shader,后续文章最终会讲解到顶点着色器和片段着色器(也就是可编程Shader)。

文章第一部分复习和进一步了解了Unity中Shader的三种形态,然后讲解了固定功能Shader中混合操作的方方面面,然后以6个Shader的书写作为实战内容,最后创建了一个温馨美好的圣诞夜场景进行了Shader的测试。

 

依旧是国际惯例,先上本文配套程序的截图吧。

圣诞节就快到了,而下次更新就已经过了圣诞节,于是这次更新浅墨就提前把这个场景放出来吧,预祝大家圣诞节快乐~

 

雪花飘落:

More

【Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑

 

本文介绍了Unity中Shader书写中会用到的剔除、深度测试、Alpha测试以及基本雾效相关的语法知识,然后以6个Shader的书写作为实战内容,最后创建了一个生机勃勃的热带雨林场景进行了Shader的测试。依旧是国际惯例,先上本文配套程序的截图。

绿色的海洋:

  More

【Unity3D Shader编程】之三 光之城堡篇:子着色器、通道与标签的写法 & 纹理混合

本文介绍了Unity中子着色器、通道和标签相关的详细概念与写法,以及纹理的设置方法,基本的纹理混合写法,写了5个Shader作为本文Shader讲解的实战内容,最后创建了一个梦幻的光之城堡场景进行了Shader的测试。依旧是国际惯例,先上本文配套程序的截图。

光之城堡:

More