EZGui之UIButton
其实花时间写这些东西,一方面也是温故而知新,加深对知识的理解,另一方面记录下自己在学习过程中的一些经验和所得,如果能对一些还未入门及一些初学者有所帮助,那是最欣慰的了。当然也同样欢迎高手的交流和指正。
其实EZGui本身自带的控件并不多,个人觉得作为UI插件来说也算是一款比较轻量级的,从它的官网上也可以看到,内容也不是很多,有几个关于控件讲解的视频,有一个demo展示了利用EZGUI控件实现的功能效果,想要学习的可以拿来参考参考。
Button应该算是最基本的一种控件了,一般来说能够响应鼠标点击,有四种状态,按钮样式可以自由定制,按钮上可以写文字。EZGui的UIButton也不另外,但是除了这个它也增加了一些额外的功能,例如Layer(层),这个也是用的比较多,像背包格可以做成一个UIButton,鼠标移上去有选中的效果就可以用这个实现。还有一个比较有意思的功能,四种状态的切换可以实现按钮各种的效果,如移动、缩放,文本字体颜色的渐变效果。如下图type中所示。
还是简单说下Button的使用方法吧,还是蛮简单的,用起来还是比较方便的。
首先你得下载了EZGUI的资源包,记住导入的时候一定要放到你当前工程asset下面,不然会提示你解压失败的。
使用EZGui必须要使用UIManager的脚本,应该来说它是EZGUI控件使用规则的一些定制。有兴趣可以看下UIManager.cs源代码。
新建一个场景,创建一个空emptyObject,把这个uimanager.cs这个脚本挂上去就可以了。
再创建一个空的emptyObject,将UIButton挂上去,Unity3d的实现是基于组件的形式(Component),其实你也可以在代码中动态的创建,
掉用addCompoent函数也可以。然后在编辑器上设置button的四种状态纹理,在给它设置build的材质,按快捷键Alt+A,将你设置的纹理创建
到设置的材质中。这种方式可以很好的管理纹理资源,提高渲染的效率。
这两个checkbox可以自动检测到按钮的长宽,其实如果不需要其它的功能,直接运行一个基本的按钮功能也就实现了。
另外给一个button添加鼠标响应时间可以有三种方式:
1)button.SetValueChangedDelegate(OnBtnClick);逻辑实现写在OnBtnClick里面
2)button.SetInputDelegate(delegate(ref POINTINFO ptr)
{
if(ptr.evt == PRESS){} //鼠标按下事件触发
});
3)
写一个脚本将其拖到上面Script With Method To Invoke中,下面Method To Invoke填你在脚本中逻辑实现的函数,如OnBtnClick
When To Invoke中选择你要触发的方式,这样就可以了。
其实我觉得最好的老师还是看看源代码(UIButton.cs),知其然且知其所以然,这样才会深刻理解。源码并不长,也不难理解。
Button就写这么多吧,仅与大家交流,也欢迎高手指正。

浙公网安备 33010602011771号