这是我参与11月更文挑战的第23天,活动详情查看:2021最后一次更文挑战
推荐阅读
大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。
一、前言
前段时间分享了UGUI的每个组件的属性和使用方法,比如Text、Button、Image、Toggle、InputField、ScrollView等等。
接着分享了UGUI的一些原理,比如说UGUI的渲染模式、UGUI的缩放计算、UGUI的描点定位、UGUI的自动布局等等。
相信大家看完后会对UGUI有一个比较全面的认识了。
下面,就继续分享UGUI的UI组件进行应用的实例。
二、介绍及效果图
有时候图标不能很好的说明这个功能的解释,就需要一些说明性文字显示。就比如可以在鼠标移动到UI上面的时候显示文字。 那么如何在UGUI上,鼠标移动上去显示文字说明呢。 大家都知道,当鼠标移动到button按钮上面的时候会出现变化,主要是button这个组件在控制 既然可以控制颜色,就一定有状态捕捉的枚举 然后就找到了这个 接下来就是重写Button类了。
效果图:
三、实现
1.新建一个button,然后remove掉原来的button组件 2.新建TestButton.cs脚本,编写脚本
using UnityEngine;
using UnityEngine.UI;
public class TestButton : Button
{
enum Selection
{
Normal,
Highlighted,
Pressed,
Disabled
}
Selection selection;
protected override void DoStateTransition(SelectionState state, bool instant)
{
base.DoStateTransition(state, instant);
switch (state)
{
//四种状态
case SelectionState.Normal:
selection = Selection.Normal;
break;
case SelectionState.Highlighted:
selection = Selection.Highlighted;
break;
case SelectionState.Pressed:
selection = Selection.Pressed;
break;
case SelectionState.Disabled:
selection = Selection.Disabled;
break;
default:
break;
}
}
private void OnGUI()
{
GUI.skin.box.fontSize = 10;
switch (selection)
{
case Selection.Highlighted:
GUI.Box(new Rect(Input.mousePosition.x, Screen.height - Input.mousePosition.y, 100, 25), "Highlighted");
break;
case Selection.Pressed:
GUI.Box(new Rect(Input.mousePosition.x, Screen.height - Input.mousePosition.y, 100, 25), "Pressed");
break;
default:
break;
}
}
}
3.挂载到button按钮上 OK了 。