一.Button 面板属性

1.基本属性 Interactable:是否可用,表示当前的按钮是否可以交互。 Transition:过渡,Color Tint 和Sprite Swap以及Animation。 项目开发过程中,最常用的就是图片过渡方式,按钮交互过程中,切换不同的图片进行状态的展示。 2.颜色过渡(Color Tint) Normal Color:默认颜色 Highlighted Color:高亮颜色 Pressed Color:按下颜色 Disabled Color:不可用颜色 [

](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112506-238x300.jpg)](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112506.jpg) 3.图片过渡(Sprite Swap) Target Graphic:默认图片,按钮要控制改变的组件。 Highlighted Sprite:高亮图片,鼠标进入就会触发;点击按钮后,如果不点击其他位置,则一直触发。项目开发过程中,**该图片可以为空**。 Pressed Sprite:按下图片,鼠标按下切换成该状态。 Disabled Sprite:不可用图片,按钮禁用后显示的图片 这里Target Graphic用的图片就是图中Image组件的图片。 [![](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112507-265x300.png)
](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112506-238x300.jpg)](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112506.jpg) 3.图片过渡(Sprite Swap) Target Graphic:默认图片,按钮要控制改变的组件。 Highlighted Sprite:高亮图片,鼠标进入就会触发;点击按钮后,如果不点击其他位置,则一直触发。项目开发过程中,**该图片可以为空**。 Pressed Sprite:按下图片,鼠标按下切换成该状态。 Disabled Sprite:不可用图片,按钮禁用后显示的图片 这里Target Graphic用的图片就是图中Image组件的图片。 [![](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112507-265x300.png)

4.播放动画过渡模式(Animation) Normal Trigger(默认触发器):默认状态触发。 Highlighted Trigger(高亮触发器):选中状态或是鼠标靠近会进入高亮状态。 Pressed Trigger(按下触发器):鼠标点击或是按钮处于选中状态时按下enter键。 Disabled Trigger(禁用触发器):禁用时触发。

Auto Generate Animatior(自动生成动画控制器): 点击此按钮,会自动生成一个包含了以上四种状态以及四种动画的animatior

[

](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112508-259x300.jpg)
](http://www.wjgbaby.com/wp-content/uploads/2017/11/17112508-259x300.jpg)

二.Button 事件绑定

1.事件绑定介绍 当我们点击按钮后,需要执行代码逻辑,这个代码逻辑,往往封装到一个方法内,然后和当前按钮的单击事件进行绑定。 2.属性面板绑定[不推荐使用] ①创建一个脚本,挂载到按钮游戏物体上,编写一个无参无返回值且公开的方法; ②属性面板上的OnClick 面板添加一个新的项; ③拖拽当前的这个脚本赋值给新添加的项; ④在Function 的位置选择对应的方法。 3.代码绑定 ①在脚本内编写一个无参无返回值且私有的方法; ②代码查找到Button 游戏物体并存储为对象; ③Button 对象.onClick.AddListener(方法名)。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class tempUGUI : MonoBehaviour {

private Button m\_Button;
// Use this for initialization
void Start () {
    m\_Button = gameObject.GetComponent<Button>();
    m\_Button.onClick.AddListener(ButtonClickTest);
}

private void ButtonClickTest(){
    Debug.Log("www.wjgbaby.com");
}

}