UGUI Button
UGUI Button,可以说是真正的使用最广泛、功能最全面、几乎涵盖任何模块无所不用无所不能的组件,掌握了它的灵巧使用,你就几乎掌握了大半个UGUI!
一、Button组件:
Interactable(是否可用):勾选,按钮可用,取消勾选,按钮不可用,并进入Disabled状态。
Transition(过渡方式):按钮在状态改变时自身的过渡方式:
Color Tint(颜色改变)
Sprite Swap(图片切换)
Animation(执行动画)(后面有详细介绍)
Target Graphic(过渡效果作用目标):可以是任一Graphic对象。
Navigation(按钮导航):假如你现在有四个按钮,当你点击第一个时,第一个会保持选中状态,然后通过按键盘方向键,会导航将选中状态切换到下一个按钮上,例如你的第一个按钮下方存在第二个按钮,当你选中第一个按方向键下时,第一个按钮的选中状态取消,第二个按钮进入选中状态,前提是这些按钮都开启了导航功能。
None(关闭):关闭导航。
Automatic(自动导航):自动识别并导航到下一个控件。
Horizontal(水平导航):水平方向导航到下一个控件。
Vertical(垂直导航):垂直方向导航到下一个控件。
Explicit(指定导航):特别指定在按下特定方向键时从此按钮导航到哪一个控件。
Color Tint(颜色改变过渡模式):
Normal Color(默认颜色):初始状态的颜色。
Highlighted Color(高亮颜色):选中状态或是鼠标靠近会进入高亮状态。
Pressed Color(按下颜色):鼠标点击或是按钮处于选中状态时按下enter键。
Disabled Color(禁用颜色):禁用时颜色。
Color Multiplier(颜色切换系数):颜色切换速度,越大则颜色在几种状态间变化速度越快。
Fade Duration(衰落延时):颜色变化的延时时间,越大则变化越不明显。
Sprite Swap(图片切换过渡模式):
Highlighted Sprite(高亮图片):选中状态或是鼠标靠近会进入高亮状态。
Pressed Sprite(按下图片):鼠标点击或是按钮处于选中状态时按下enter键。
Disabled Sprite(禁用图片):禁用时图片。
Animation(播放动画过渡模式):
Normal Trigger(默认触发器):默认状态触发。
Highlighted Trigger(高亮触发器):选中状态或是鼠标靠近会进入高亮状态。
Pressed Trigger(按下触发器):鼠标点击或是按钮处于选中状态时按下enter键。
Disabled Trigger(禁用触发器):禁用时触发。
Auto Generate Animatior(自动生成动画控制器):
点击此按钮,会自动生成一个包含了以上四种状态以及四种动画的animatior,然后选中此按钮,ctrl+6进入动画编辑界面,分别对以上四种动画进行调动就可以了。
OnClick():按钮点击事件触发集合。
二、使用中的技巧:
《功能1:动态为button添加点击事件》
代码如下:
《功能2:动态为button添加其他(可以是点击以外)事件》
代码如下:
Unity UGUI Button 按下,抬起,连续按下,鼠标退出事件响应函数
-
using UnityEngine;
-
using UnityEngine.Events;
-
using UnityEngine.EventSystems;
-
using System.Collections;
-
public class test : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerExitHandler, IPointerClickHandler
-
{
-
public float interval = 0.1f;
-
[SerializeField]
-
UnityEvent m_OnLongpress = new UnityEvent();
-
private bool isPointDown = false;
-
private float lastInvokeTime;
-
// Update is called once per frame
-
void Update()
-
{
-
if (isPointDown)
-
{
-
if (Time.time - lastInvokeTime > interval)
-
{
-
//触发点击;
-
m_OnLongpress.Invoke();
-
lastInvokeTime = Time.time;
-
Debug.Log("长按");
-
}
-
}
-
}
-
public void OnPointerDown(PointerEventData eventData)
-
{
-
m_OnLongpress.Invoke();
-
isPointDown = true;
-
lastInvokeTime = Time.time;
-
Debug.Log("鼠标按下");
-
}
-
public void OnPointerUp(PointerEventData eventData)
-
{
-
isPointDown = false;
-
Debug.Log("鼠标抬起");
-
}
-
public void OnPointerExit(PointerEventData eventData)
-
{
-
isPointDown = false;
-
Debug.Log("鼠标退出");
-
}
-
public void OnPointerClick(PointerEventData eventData)
-
{
-
isPointDown = false;
-
Debug.Log("鼠标点击");
-
}
-
}