赞
踩
这里注意下要想改变按钮不同状态的效果,需要先在右侧属性控制中选择控制器
下拉框的创建已经很简单了
提前切好图,按照三部曲即可创建出来,创建好后会有三个文件
Item是下拉框内容item,双击进去后还可以自定义里面的内容
Popup是列表控件,同样可以双击进去自定义
除了在这编辑,列表需求多数都是请求自动变化的,FairyGUI同样支持代码中设置item集合内容,和传统集合一样,要想访问集合中的item通过索引即可从0开始。有一点不同的就是上图的“值”(索引),你不写的话默认从0开始。当你修改后就需要索引值就是你修改的。比如上图,我如果没修改访问叮叮当1 就是getIndex(0),当时我把值修改为1了,访问叮叮当就是getIndex(1)
还有更多按钮详情(状态分析普通按钮selected属性无效,单选按钮组的多个实现普通按钮方式 控制器+单选按钮连接方式)讲解在……,我还没上传,回头小空发布后更新出来链接。
可以改变元件的宽度/高度/填充比例,分为横向和纵向,还有正向和反向;创建也很简单,一个进度条背景,一个伸缩条即可。
如何显示进度条当前进度?
双击进入进度条,添加个文本控件,然后名称改为“title”,要想和进度条最右侧实时跟随移动,设置关联即可。
如何实现带有跟随动画的进度条?
细心的朋友发现了,还有个小狐狸跟随进度条,平时玩游戏切换场景的时候经常看到进度条不是单调的横线,还有些小动画跟随,增强灵动性。
这个实现和上面的文本添加类似,区别在于你要想拖入动画的话,可以在编辑进度条的时候增加个装载器,装载器放入动画文件,想要和进度条进度试试跟随的话,再设置小狐狸和进度条的伸缩条的关联设置为右右关联
如何监听进度条?
进度条最大的作用就是和程序相结合,用于加载中,流程进度节点等,所以我们要能修改和监听进度条
她和进度条就像双胞胎一样相似,但是她多出个按钮让用户自己拖动改变进度值。
创建也很简单点击资源->新建滑动条按照提示添加即可
想要自定义她的样式也是可以的。
在FairyGUI中,滚动条是可以随心设计的。滚动容器和滚动条是独立的,也就是说,即使没有滚动条,滚动容器也能完成滚动的功能。
她的创建同样是点击主菜单“资源”->“新建滚动条”,然后按照向导的提示一步步完成即可。
这是个特殊的扩展,应用场景也挺广,比如内容展示,邮箱,若项目时教学类的项目,少不了各种题目各种列表。
点击侧工具栏的 按钮生成一个列表。上面说下拉框的时候也借助了列表。
列表属性丰富多彩
渲染顺序 定义item的显示顺序与它的列表中的顺序的关系。
选择模式 支持四种选择模式:无,单选,多选(使用shift键),多选(单击选择)。item要参与到单选有一个前提,是必须为单选按钮,如果不是单选按钮,则不会参与到选择模式中。单选是指同一时间只能有一个item被选中;多选则允许有多个,多选的操作方式有两种,一种是使用shift键进行多选,不过这需要键盘的支持,不适合移动设备;另一种是每个item单击即选中,再单击就取消选中的方式,不需要键盘的支持。
选择控制 可以绑定一个控制器。当列表发生翻页滚动时(溢出处理必须为三种滚动之一,滚动必须勾选为页面模式),控制器也同时跳转到相同索引(页码)的页面。反之亦然,如果控制器跳转到某个页面,那么列表也同时滚动到相同索引(页码)的页面。
项目资源 设置列表默认使用的item类型,也就是item样式
编辑列表数据 除了设置固定的数据外,代码中还支持动态设置数据内容
当你对列表增删改后,列表是自动排列和刷新的,不需要调用任何API。自动排列时会根据列表的布局设置item的坐标、大小和深度,所以不要自行设置item的位置,也不要设置sortingOrder尝试去控制item的深度。除了一个例外,垂直布局的列表只会自动设置item的y坐标,如果你需要item有一个水平位移的效果,你仍然可以修改item的x值。水平布局的也是一样道理。
在实际应用中,列表的内容通常被频繁的更新。典型的用法就是当接收到后台数据时,将列表清空,然后再重新添加所有项目。如果每次都创建和销毁UI对象,将消耗很大的CPU和内存。因此,GList内建了对象池。
注意,不管是添加合适移除都要使用对应的对象池方法,不要搞什么AddChild添加RemoveChildrenToPool来清除,这明显不一致,会导致对象池不断增大,造成内存溢出。
更多详细建议看官方文档
她是列表的特殊个例,实现的功能为类似手机里面的文件夹列表,具有层级关系。
她的创建仍然是先创建列表,然后列表右侧有激活树视图的勾选,勾选后在编辑内容时,就会增加个层级选项。
弹出界面可以说很常见了,这些组件会在用户点击空白地方的时候自动消失,Android里面经常用到。
点击“资源->新建弹出菜单…”,然后根据向导完成。菜单组件里的关键元素是命名为list的列表组件,列表的溢出处理模式应该选择为可见,因为一般来说,菜单都是显示全部item的,不需要滚动。
创建完成后在Unity中用代码进行管理
UIConfig.popupMenu 设置全局菜单资源
GRoot.inst.ShowPopup 弹出组件,可以指定弹出位置在哪个下方
PopupMenu 菜单类,管理弹出菜单
窗口花样百出,可以设置任意组件作为她的显示内容,且窗口支持拖动。
窗口样式内容你需要在FairyGUI中提前编辑好,制作好后,需要在Unity中用代码进行管理。
Window win = new Window();
GRoot里提供了一些窗口管理的常用API。
BringToFront 把窗口提到所有窗口的最前面。
CloseAllWindows 隐藏所有窗口。注意不是销毁。
CloseAllExceptModals 隐藏所有非模态窗口。
GetTopWindow 返回当前显示在最上面的窗口。
hasModalWindow 当前是否有模态窗口在显示。
又是一个重点,FairyGUi除了静态UI外,动效UI做起来也很轻松
在上面讲编译器主页面的时候就说过了动效。更多图文并茂参考官方文档。
做过Android开发的都知道,适配是个体力活,一分钟开发三分钟适配,即使开始经验充足或者使用了今日头条的适配,后续仍然可能有需要适配的。
FairyGUI为手游提供了自动适应各个设备分辨率的UI策略。选择一个设计分辨率的图片(通常为全屏界面)来进行开发,运行的时候会根据设备将UI界面经过缩放投到屏幕上。
有一个很有意思的机制:假如整体需要放大两倍的话,一个窗口为400*400的,投射到屏幕上是800*800放大后的,但是你用代码读取窗口的宽高时,仍然是400*400且坐标也不变化。
除了等比的缩放,有一点就得需要注意-全屏,现在有的全面屏手机,高度贼拉长,有的高度正常,大部分手机宽度基本一致,这就导致宽高比不一样,就需要有所调整了:
如果你使用的是UIPanel,那么在Inspector上设置Fit Screen为Fit Size就可以了
三部曲
现在FairyGUI中做好你的界面,最后再适配多国语言,点击“工具-字符串导入和导出”,导出来
复制一份导出来的文件,开始进行翻译,翻译完毕后修改下文件后缀挂上en和上面导出的放在同一地方(Unity里面的文件夹)
代码动态加载语言文件FairyGUI.Utils.XML xml = new FairyGUI.Utils.XML(fileContent);
UIPackage.SetStringsSource(xml);
注意:语言不能动态实时切换,要想中切英或者英切中,都需要先销毁所有UI卸载所有包
这个功能和Unity的功能类似,Unity是.unitypackage后缀文件,FairyGUI是. Fairypackage后缀文件。
FairyGUI帮助我们从Unity中解脱出来,提高生产力,那么有想法的人又开始“得寸进尺”了,
虽然由原来纯Unity实现转为UI靠拼拼点点无代码开发,但是UI出图后用FairyGUI开发仍然需要人力和事件。
啊,这思想就有点过分了啊,难不成直接从UI图全自动帮你生成FairyGUI?开玩笑,不过确实是有:psd2fgui,但她未必能满足每个人的项目需求,只能作为辅助工具。
psd2fgui开源地址:https://github.com/fairygui/psd2fgui,看名字就知道她是将PSD转为FGUI。
首先准备PSD文件:
如上图所示,使用图层名称或组名称来表达它的类型和用途。以下是约定的细节:
按钮 组的名称以Button开始表示这个组是一个按钮。组内的层如果名称中含有下面定义的特殊字符串(注意是包含即可,不是相同。推荐作为后缀),表示这个图层的特别含义:
@up 这个图层只在按钮的up状态显示
@over 这个图层只在按钮的over状态显示
@down 这个图层只在按钮的down状态显示
@selectedOver 这个图层只在按钮的selectedOver状态显示
@title 文字用作按钮的标题
@icon 图片用作按钮的图标
组件 组的名称以Com开始表示这个组是一个组件。组件可以嵌套。
用命令进行转换提取,之后在FairyGUI中导入资源包。
将编辑好的UI在Unity中使用也很简单
Unity下载FairyGUI插件并导入
将Fairy GUI中发布的资源放到Unity项目文件夹下,Resources下即可
如果第一步成功,在你的场景Hierarchy中右键会有FairyGUI选项,创建UIPanel
在UIPanel中的Package Name选择你在FairyGUI的包名,ComponentName选择你的主场景组件
显示成功,你还可以添加UIContentScaler脚本设置分辨率相关
好了,关于介绍学习小空就到这里了,小空接下来还会分享几篇较难的案例来更深入的理解技术。
案例包含:视频、音频、3D画廊、雷达图柱形图仪表盘、日期选择器、Item多布局、轮播图、图片查看器
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
如果你进阶的路上缺乏方向,可以加入我们的圈子和安卓开发者们一起学习交流!
Android进阶学习全套手册
Android对标阿里P7学习视频
BATJ大厂Android高频面试题
最后,借用我最喜欢的乔布斯语录,作为本文的结尾:
人这一辈子没法做太多的事情,所以每一件都要做得精彩绝伦。
你的时间有限,所以不要为别人而活。不要被教条所限,不要活在别人的观念里。不要让别人的意见左右自己内心的声音。
最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Android对标阿里P7学习视频
[外链图片转存中…(img-x7bWbkvi-1712677749000)]
BATJ大厂Android高频面试题
[外链图片转存中…(img-nO8hYwac-1712677749000)]
最后,借用我最喜欢的乔布斯语录,作为本文的结尾:
人这一辈子没法做太多的事情,所以每一件都要做得精彩绝伦。
你的时间有限,所以不要为别人而活。不要被教条所限,不要活在别人的观念里。不要让别人的意见左右自己内心的声音。
最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-ZUaO5uZb-1712677749000)]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。