代码改变世界

Unity3D的ugui之按钮事件

2015-03-17 09:48  阿诚de窝  阅读(21358)  评论(0编辑  收藏  举报

为Unity3D的按钮添加事件有三种方式,假设我们场景中有一个Canvas对象,Canvas对象中有一个Button对象。

方式一:

创建脚本ClickObject.cs,然后将脚本添加到Canvas对象上,脚本如下:

 1 using UnityEngine;
 2 using System.Collections;
 3 using UnityEngine.UI;
 4 using UnityEngine.Events;
 5 
 6 public class ClickObject : MonoBehaviour
 7 {
 8     void Start ()
 9     {
10         //获取按钮游戏对象
11         GameObject btnObj = GameObject.Find ("Canvas/Button");
12         //获取按钮脚本组件
13         Button btn = (Button) btnObj.GetComponent<Button>();
14         //添加点击侦听
15         btn.onClick.AddListener (onClick);
16     }
17 
18     void onClick ()
19     {
20         Debug.Log ("click!");
21     }
22 }

方式二:

脚本同样添加到Canvas对象上,如下:

 1 using UnityEngine;
 2 using System.Collections;
 3 using UnityEngine.UI;
 4 using UnityEngine.Events;
 5 
 6 public class ClickObject2 : MonoBehaviour
 7 {
 8     void Start ()
 9     {
10         //获取按钮游戏对象
11         GameObject btnObj = GameObject.Find ("Canvas/Button");
12         //获取按钮脚本组件
13         Button btn = (Button) btnObj.GetComponent<Button>();
14         //添加点击侦听
15         btn.onClick.AddListener (delegate() {
16             onClick(btnObj);
17         });
18     }
19     
20     void onClick (GameObject obj)
21     {
22         Debug.Log ("click: " + obj.name);
23     }
24 }

方式三:

之前的方式都是使用代码添加,下面的这个方式则是直接在编辑器中进行操作:

我们找到Button游戏对象,找到其Button代码组件,在组件最下方有一个“On Click ()”的区域,点击该区域的“+”号,可以添加一个触发项,触发项前面可以选择一个任意的游戏对象,当选择了游戏对象之后后面就可以选择该对象上的一个任意方法,选择好之后,当我们点击了该按钮对象之后就会调用到选择的游戏对象的制定方法。

该方式太简单就不写示例代码了。