当前位置:   article > 正文

Unity跨平台UI解决方案:可能是最全的FairyGUI系列教程(1)_fairygui刷新组件位置

fairygui刷新组件位置
  1. 对文本元件使用这个字体(或设置为全局字体)即可。

从以上步骤可以看出,在FairyGUI中可以轻松切换文本是否使用TextMeshPro。

当文本使用了TextMeshPro字体后,文本的属性会增加额外的选项,见下图:

自行调整一下各个属性,通过实际效果感受其作用。通常建议当描边增大时,扩张值也应该同时调大。

Unity引擎里还需要做些特别的处理:

  1. 确认安装了TextMeshPro插件。

  2. ttf文件拖入Unity编辑器,一般放置Resources目录或者Resources/Fonts目录最简单。

  3. 为ttf文件创建一个TextMeshPro FontAsset。通常,创建出来后的Asset的名字是’XXX SDF’,我们需要把名字改成’XXX‘,以便和FairyGUI编辑器里的资源名字一致。

  4. 配置这个FontAsset的Sampling Point Size与FairyGUI编辑器里的采样字体大小一致。

组(普通组和高级组)

把分散的物品结合成一个整体,移动复制缩放隐藏等操作都是共同的。后续动作都将针对整体进行。后续动作也分为在FairyGUI编译器中的动作和Unity中代码操作。这俩操作又引申出普通组和高级组。

普通组是在FairyGUI编译器中你在开发编辑的时候生效,帮你快速布局,铺设UI,在发布后和运行都不存在了,你就没办法把她当成一个整体操作了。

高级组就不一样,光听名字就知道这功能高级,她的优点在于除了在FairyGUI编译器中生效帮助你快速铺设UI,她在发布后仍然保留组关系,比如你用代码修改了高级组的位置,组内的所有元件都会移动。比Android的相对布局,当修改整体组时,组内元件大小对应变化;当组内某个元件变化,其他元件也适应变化。

组件-重点

组件是什么?

你点击资源->新建组件,看看出现什么

这不就是舞台(中央操作区)做布局用的吗?没错,组件就是布局,可以理解为组件就是Unity中的Canvas,Android中的xml布局,那既然是布局,就可以封装布局(封装组件),所以:

  1. 组件可以包含多个元件(布局里面可以包含多个控件),比如舞台中有按钮图片等

  2. 组件可以包含组件(布局可以嵌套布局),比如复用性较高的控件封装一个组件,在主组件中拖入使用

  3. 组件封装后,可以把她整体又当成一个元件

啊,这关系好乱啊,不过仔细想明白后,对FairyGUI的理解就顺畅多了。

来看看组件的属性:

  1. 同时作为锚点 勾选这个选项后,元件的原点位置将设置为轴心所在的位置。默认情况下,每个元件的(0,0)都是在左上角;勾选了轴心同时作为锚点后,则元件的(0,0)在轴心的位置。Unity中默认是中心为锚点,这是左上角,保持默认即可。

  2. 溢出处理 设置超出舞台矩形区域的内容怎么显示,有可见,隐藏,垂直/水平/自由滚动

  3. 自定义遮罩 详情看下面遮罩内容

  4. 点击穿透 比如带有透明区域的png图片,默认情况下,空白区域点击事件照样触发,勾选后,透明区域不再响应事件,若项目中需要多个带有透明的PNG重叠且各自触发事件,建议勾选,因为不勾选,虽然能够看到下一层的图片效果,但是点击事件被第一层的透明区域拦截了,无法下发到下一层PNG上。

  5. 扩展 详情看下方扩展介绍

  6. 设计图功能 显示在舞台上,做布局的时候可以参考整体的UI图,就像印着写字帖一样,更快速,更精准的布局,甚至都不用UI进行尺寸标注

自定义遮罩

普通遮罩

可以设置组件内一个图片或者图形作为组件的遮罩。

当使用图形(Graph)作为遮罩时,有图形的区域内容可见,例如,一个圆形,则圆形区域内可见,其他区域不可见。

当使用图片作为遮罩时,图片内透明度为0的像素对应区域的内容不可见,反之可见。超出图片区域的内容不可见。

反向遮罩(挖洞)

效果和正常遮罩相反,也就是可见的区域变不可见,不可见的区域变可见。

使用图形(Graph)作为遮罩时,有图形的区域内容不可见,例如,一个圆形,则圆形区域内不可见,其他区域可见。

使用图片(Image)作为遮罩时,图片内透明度为0的像素对应区域的内容可见,反之不可见。超出图片区域的内容可见。

扩展

这个功能就相当有意思了,刚才我们说了,中央操作区也是一个组件,一个组件就相当于一个页面,一般都是只有一个主页面,当你的页面复杂或者想要分开管理的时候可以创建多个组件,然后放到一个组件里,将这个组将当成主页面。当某个组件(页面)复用性高的时候,这种方法很有用。

Android里面布局代码过多的时候,通常都会提炼出一个布局,或者复用性较高的布局提炼出来(比如APP的标题栏复用很高),这样后续其他布局使用的时候直接使用include关键字直接引入布局,相当便利。

当你选择扩展为“按钮”的时候,会发什么效果?

修改保存后妥妥的发现组件的图标变成了按钮的图标;

这时候我就产生疑问了:难道按钮进度条这些都是用组件封装的?

我选择不同的扩展,保存后发现组件的图标会对应修改,表现出的效果相当明显了

  1. 按钮/标签/进度条/下拉框等功能都是组件修改封装而来

  2. 组件就相当于基类,你想要实现其他功能,可以在组件上进行修改封装,之后在主组件(主布局)中使用

  3. 元件包含基础元件/组合型元件/特殊元件,是官方已经封装好的控件,上面元件有分类,组件就包含元件里面的组合型元件,组件还可以凭你的想象自由组合成新控件

滚动容器

对组件或者列表设置了“溢出处理”为“水平滚动”、“垂直滚动”,“自由滚动”后,组件或者列表即成为滚动容器。点击“溢出处理”旁边的按钮,可以设置详细的滚动的相关属性。

  1. 触摸滚动效果 是否允许用户直接拖拽滚动区域内的内容。一般在移动平台上使用,PC上较少,PC上一般需要拖动滚动条,或使用鼠标滚轮。

  2. 滚动条组件 设置滚动条资源。一般不需要设置,全局有一个设置,在主菜单“文件->项目属性->默认值”里。如果你要使用不同于全局设置的滚动条资源,那么在这里设置。

  3. 下拉/上拉刷新组件 设置上拉刷新或下拉刷新时需要显示的组件。一般是你封装好的组件

  4. 页面模式 以视口大小为页面大小,每次滚动的距离是一页。一般在移动平台上使用,PC上较少,拖动滚动条进行滚动操作与这个模式冲突。

  5. 禁用裁剪边缘 一般情况下,视口不包括边缘设置的部分,也即是容器设置四周的留空部分也会被裁剪。如果需要,可以勾选这个选项,使容器四周的留空部分不被裁剪。

  6. 浮动显示 勾选后,滚动条不占据视口的位置,而是直接覆盖在视口上面。例如一个适用于手机的滚动条,它是细条且半透明的,只在滚动时才显示出来,用于提示滚动位置。那么我们把它设置为“浮动”,这样就不会挤占视口的显示空间。

控制器-重点

FairyGUI的核心功能之一,提供了几个需求支持:

  1. 分页 一个组件可以由多个页面组成。

  2. 按钮状态 按钮通常有按下、鼠标悬浮等多个状态,我们可以利用控制器为每个状态安排不同的显示内容。

  3. 属性变化 利用控制器,我们可以使元件具有多个不同的形态,并且可以方便地切换。

每个组件可以创建多个控制器,且互不影响

在组件中点击添加控制器会跳出创建框

名称       为控制器名称,同一个组件内的不要同名

备注名    帮助你理解的注释名,会和下方的导出为组件属性联合使用,勾选导出为组件属性,当你将这个组件拖动到其他的组件上时,右侧属性区会显示

页面       你可以理解成状态,既然是控制器,就要控制出效果,比如按钮(滑过/点击/抬起等状态),设置不同的动作效果

你可以单独新建按按钮看看,按钮的上方就有一个默认名为button的控制器,有4个状态(页面)

属性控制       创建好控制器后,想要使用她,你选中一个元件,在右侧属性栏会有“属性控制”面板,隔这选择即可。她有显示/位置/大小/颜色/外观/动画/文本等控制。

她还可以实现联动效果:

  1. 与按钮联动,当点击不同按钮后,跳转不同页面

  2. 与列表联动,就像Android的列表一样点击一个item显示出对应索引的页面

  3. 与下拉框联动,效果同上

具体效果我们会在后续的实际案例中学学习

关联系统

不管是前端还是移动端或者PC端,应该都有这种相对布局体系。

比如移动端的相对布局(RelativeLayout)

FairyGUI任何元件可以互相关联,在右侧有关联选项,可以实现布局自适应,对话框自适应,动态变化的内容等。

比如:玩游戏的时候有全屏或者小屏的时候,界面大小修改后UI布局仍然保持的相当好,想想当年天龙八部窗口化UI布局就是这种机制。

按钮和下拉框

常用的基础组件,传统UI框架中的RadioButton、Checkbox、List Item等,在FairyGUI里通通都是按钮。

这里注意下要想改变按钮不同状态的效果,需要先在右侧属性控制中选择控制器

下拉框的创建已经很简单了

提前切好图,按照三部曲即可创建出来,创建好后会有三个文件

Item是下拉框内容item,双击进去后还可以自定义里面的内容

Popup是列表控件,同样可以双击进去自定义

除了在这编辑,列表需求多数都是请求自动变化的,FairyGUI同样支持代码中设置item集合内容,和传统集合一样,要想访问集合中的item通过索引即可从0开始。有一点不同的就是上图的“值”(索引),你不写的话默认从0开始。当你修改后就需要索引值就是你修改的。比如上图,我如果没修改访问叮叮当1 就是getIndex(0),当时我把值修改为1了,访问叮叮当就是getIndex(1)

还有更多按钮详情(状态分析普通按钮selected属性无效,单选按钮组的多个实现普通按钮方式 控制器+单选按钮连接方式)讲解在……,我还没上传,回头小空发布后更新出来链接。

进度条/滑动条/滚动条

进度条

可以改变元件的宽度/高度/填充比例,分为横向和纵向,还有正向和反向;创建也很简单,一个进度条背景,一个伸缩条即可。

如何显示进度条当前进度?

双击进入进度条,添加个文本控件,然后名称改为“title”,要想和进度条最右侧实时跟随移动,设置关联即可。

如何实现带有跟随动画的进度条?

细心的朋友发现了,还有个小狐狸跟随进度条,平时玩游戏切换场景的时候经常看到进度条不是单调的横线,还有些小动画跟随,增强灵动性。

这个实现和上面的文本添加类似,区别在于你要想拖入动画的话,可以在编辑进度条的时候增加个装载器,装载器放入动画文件,想要和进度条进度试试跟随的话,再设置小狐狸和进度条的伸缩条的关联设置为右右关联

如何监听进度条?

进度条最大的作用就是和程序相结合,用于加载中,流程进度节点等,所以我们要能修改和监听进度条

滑动条

她和进度条就像双胞胎一样相似,但是她多出个按钮让用户自己拖动改变进度值。

创建也很简单点击资源->新建滑动条按照提示添加即可

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

最后

简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。

选定你想去的几家公司后,先去一些小的公司练练,学习下面试技巧,总结下,也算是熟悉下面试氛围,平时和同事或者产品PK时可以讲得头头是道,思路清晰至极,到了现场真的不一样,怎么描述你所做的一切,这绝对是个学术性问题!

面试过程一定要有礼貌!即使你觉得面试官不尊重你,经常打断你的讲解,或者你觉得他不如你,问的问题缺乏专业水平,你也一定要尊重他,谁叫现在是他选择你,等你拿到offer后就是你选择他了。

金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img
他了。

金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-Nj3Uqh7J-1712677717390)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-sGbVBVzX-1712677717390)]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/538779
推荐阅读
相关标签
  

闽ICP备14008679号