Unity跨平台UI解决方案:可能是最全的FairyGUI系列教程

这篇具有很好参考价值的文章主要介绍了Unity跨平台UI解决方案:可能是最全的FairyGUI系列教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

FairyGUI的项目文件结构


fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

.objs 内部数据目录。注意:不要加入版本管理,因为这里的内容是不需要共享的。

assets 包内容放置目录,资源内容都在这里面,里面还可以分不同的包,便于区分管理(看下图)

settings 配置文件放置目录。

****.fairy 项目识别文件,也就是项目名称

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

目录

在编辑器中对应显示如下:

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

编辑器目录

编译器主界面


fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

标题

注意左方功能区的显示列表,按显示顺序排列,列表中越往下的元件显示在越前面。可以在列表中直接拖拽改变元件改变它们在显示列表中的位置。

动效时间轴

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

在左侧功能区动效里面增加动效后双击动效即可进去时间轴

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

  1. 时间显示单位是秒

  2. 参与动效的各个元件和属性,左边元件名称可以起名规范些,以后若是想在Unity中用代码控制也方便(因为代码中控制是需要用名字来查找的),右侧显示的是属性(XY-改变位置,Size-改变大小,Rotation-改变旋转,还有改变透明度,颜色,缩放,倾斜,可见性,声音,震动,滤镜等等)。想要添加新属性的话,在舞台(中央操作区)右键元件即可出现

  3. 各个属性的时间轴。fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎 表示关键帧,fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎 表示两个关键帧之间使用插值动画(右键创建Tween,支持自定义:选中关键帧后在右侧功能区有缓动函数)fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎 红色小红旗则表示这个关键帧有Label(标签),可以通过代码按标签名称访问进而实现帧监听(比如走到某一帧执行其他逻辑)。

  4. 信息显示区 ,FPS是帧率,在右侧功能区检查器最上方修改;frame便是当前从第几帧开始播放;time表示播放头的时间是多少,单位是秒

  5. 时间轴放大/缩小,当编辑的动效很长时,将她拉大即可

  6. 时间轴上和Unity时间轴一样都可以在上面操作,左键包含单选/多选/拖动,右键包含转换为关键帧/清除关键帧/插入帧/创建或删除Tween等

引用/搜索/控制台


引用:查询一个资源被其他资源引用的情况,或者查询一个资源引用其他资源的情况,关键是还能替换,6的很

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

搜索:输入关键字,检索出相关内容

控制台:显示软件的提示信息,分为提示信息,警告信息和错误信息。

测试界面:

当你想看看运行效果的时候,可以点击主工具栏的测试按钮或者F5运行

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

你可以设置全局适配参数,修改设备预览,横竖屏等操作。当时要注意在动效播放过程中,不要改变屏幕大小,否则会出现异常。

项目设置


默认值

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

注意:这些参数是编辑器内的默认值,与运行时无关。运行时需要用UIConfig重新进行全局的设置。而且后者的设置也不一定需要和这里的设置相同。

字体:修改所有文本的默认字体,可以使用项目中的字体(ttf文件)也可以用系统自带的(你电脑C:\Windows\Fonts下有什么字体这就有什么字体)

字体颜色/大小:设置在舞台中(中央操作区)新建文本的默认颜色和大小

默认轴心:即坐标原点,默认左上角即可

垂直滚动条/水平滚动条:设置制作UI时所有带滚动功能的容器需要使用的滚动条资源。这就是说,你将一个组件或者一个列表的“溢出处理”设置为“垂直滚动”、“水平滚动”或者“自由滚动”后,不需要每次设置滚动条,自动就会使用这里设置的滚动条资源。如果某个组件需要使用和全局设置不一样的滚动条,在当前组件拖动上去覆盖掉即可。全局设置和单独设置都支持。

按钮点击声音:设定按钮的默认点击声音。设置后,所有按钮点击都会播放这个声效,除非按钮自己独立设置另外的声效。这个设置仅用于编辑器内,运行时使用UIConfig.buttonSound设定。

快捷菜单

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

在这设置后,当以后你在任何地方修改字体大小颜色或字体样式的时候,不用设置了,直接用下拉菜单选择即可。

项目分支

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

对有的项目来说这节很重要。

分支功能是用来实现多态设计的,比如多语言版本存在UI的差别,除了基本文字的中英文差别,还有图片艺术字中英文等差别,要保证资源名称一致,这和Android的思想一致。

我们都是在主干上开发,随时可以建立任意多个分支,然后分支上添加有差别的内容即可

注意,它和代码仓库中的分支概念不一样。UI分支不包含主干的资源,它只放置与主干有差别的内容,降低资源容量

详细内容可看官方文档教程

发布设置


纹理集

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

发布的时候编辑器会将项目中的图片资源放到一起,当放不小的时候会自动分页,如图

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

这的设置修改影响着发布出来的纹理集大小,一般默认的即可,自己可以修改看看都有什么效果,除了发布路径你自己修改,其他内容一般情况下保持默认的即可。

难道真这么简单?小空刚开始也挺顺利,后面资源多了也开始蹦出不少问题:

问题一:Gif图的序列帧刚好被分配到了两个纹理集上,而要求Gif帧需要在一张纹理集上,编辑器就会在你发布的时候给你提示:发布失败,动画被自动发布到不同的纹理集上,这会导致…

想要解决,我们只需要将这个Gif图改为单独的纹理集就行了(双击会弹出设置)。Gif在编辑器中是动画形式,详情请看本系列的动画小节。

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

问题二:再深入的问题又来了,一款游戏,再小他也是有不少资源的。纹理集设置默认是2048*2048像素的(在发布设置中可修改),保不齐修改更大的尺寸(4096像素?或者8192像素?)。发布后放到Unity运行你会发现,哎呦我去,怎么变模糊了?UI给图给岔劈了?不对啊,在FairyGUI中看没问题啊。难道问题出在Unity?

不错,你发布出来的纹理集资源放到Unity里默认是2048的,你已经修改成更高像素的了,还用2048的来解析,不出问题才怪。只需要修改最大尺寸对应上即可。

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

问题三:以为这就完了?还能再深入,这点小空也是着实被坑了一把。即使你设置了如上内容,睁大钛合金双眼仔细看,还是能看出一些不舒服的地方:可能部分有点点“灰边”,而在FairyGUI中却没有。

没错又是Unity搞得鬼,看上图右侧部分,有个压缩选项,默认Unity纹理集是法线压缩,你改为none即可。

读者要是第一次学习FairyGUI,这几个问题能看着不知其所以然。没关系,接着往下了解,当看完教程实际上手后,你会发现这的坑。

FairyGUI基础元素

============

元件

在舞台(中央操作区)的任意都是元件,右边操作区是元件的属性面板设置

基础元件:图片,图形,动画,文本,装载器,组件

组合型元件:标签,按钮,下拉框,滚动条,滑动条,进度条

特殊元件:列表,树

不同属性面板可修改的内容大同小异,基本围绕在修改名称,位置,尺寸,缩放,轴心,遮罩,穿透,文本修改,图片,属性控制(缩放移动等过度动效)。

图片

视觉效果上最常见实现之一就是图片了,她是FairyGUI中最基础的元素,它的设计是尽量考虑到简洁而且高效的。支持的格式PNG,JPG,TGA,SVG。

在这我们强调下九宫格缩放和平铺,九宫格绘制会遵循下面的规则:

  1. 保持4个角部分不变形

  2. 单向拉伸4条边(即在4个角两两之间的边,比如上边,只做横向拉伸)

  3. 双向拉伸中间部分(即九宫格的中间部分,横向,纵向同时拉伸,PS:拉伸比例不一定相同)

这个Android的.9图片异曲同工

如果你想使用平铺来进行缩放的话,除了Flash和Haxe版本,应该尽量避免使用较小面积的图片平铺填充到较大的面积,因为这样会产生大量的网格,甚至可能溢出报错。

图片还支持填充效果,比如顺时针,90度等,修改填充比列可以实现技能CD冷却效果。

资源适配

Android有布局适配,里面同样需要对mdpi,xhdpi,xxhdpi等切不同分辨率的图,FairyGUI同样支持,你只需要让美工切出图,并且相同图片不同分辨率的文件名后缀用@2x、@3x、@4x结尾,只有放好资源即可,在发布对话框里的时候勾选@2x,@3x,@4x选项,后续处理机制是自动无感知的,我们不需要关心。

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

动画

编辑器支持创建、编辑和使用序列帧动画。创建序列帧动画的方式共有三种:

  1. 使用Adobe Animate CC/Flash等动画编辑工具制作好动画,导出带plist或eas扩展名的描述文件以及相关的贴图(应放置在相同目录),然后将描述文件(仅描述文件,不是贴图)拖入编辑器即可生成动画素材。

  2. 点击菜单“资源”->”新建动画”,或者点击主工具栏按钮,可以创建一个新的空白动画。然后在动画编辑界面点击“导入图片序列”,导入多张图片。

  3. 直接拖入一个GIF文件到编辑器,GIF会自动转换为序列帧动画。

无论从何种方式创建的动画,在编辑器里,动画素材都是以一个单一文件存在(扩展名为jta)。也就是说,无论动画是从库里的图片文件创建的,还是从外面导进来的,都不会再有对单个图片的依赖。例如,如果你是从资源库里拖图片进入动画编辑器创建动画的,创建完成后,这些图片与动画再没有任何关系。如果你要设置动画所在的纹理集,在动画编辑器里对动画进行设置,对那些图片设置是无效的。

图形

FairyGUI支持生成简单的图形,比如矩形,圆形,正多边形,和多边形(这个支持任意编辑),还有一个无(空白),这个无,她不消耗任何显示资源,一般用来做占位用途,但有一点这个空白类型的图形和全透明的图形是不一样的。透明的图形可以阻挡点击事件,而空白类型的图形点击事件会穿透下去。

强调:不要小瞧这个图形组件,她的作用可真不小,小空玩的不亦乐乎,可谓是发挥极限。

拿来阻挡事件,拿来做多样化遮罩都是小操作,什么伪关联,伪动效,各种伪中介。

我会在后续的案例教程中实践应用到,记得给个三连哦(关注点赞+收藏)

刚才说了多边形是支持编辑的,那怎么编辑呢?

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

常用的操作有:

  1. 拖动圆点调整顶点位置;

  2. 左键点击一个圆点,在检查器里改变点的坐标数值;

  3. 右键点击舞台,选择右键菜单中的“增加顶点”;

  4. 右键点击一个圆点,选择右键菜单中的“删除顶点”;

  5. 在检查器里勾选“锁定形状”,然后通过第1或者第2种方法改变某个顶点位置,其他顶点会同时改变位置,相当于一个整体移动所有顶点的效果。

占位

上面说了占位,就跟排队买票或者打饭一样,你有事不在先找个人帮你占着排队,等你回来和对方替换一下。空白图形就是这个功能,你可以在Unity中用代码来将原生对象放进这个占位上,blankObject.SetNativeObject(UnitySprite); 很丝滑的就插进去了。

装载器


装载,,装载,装装载载,加载,加载,加加载载,一看就是用来动态载入资源的玩意。

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

具有什么属性右侧一目了然,可以随便试试,一般勾选下自动大小就行。重点是我们如何动态赋值:利用GLoader

GLoader可以载入图片、动画和组件。如果是UI包里的资源,那么通过“ui://包名/图片名”这种格式的地址就可以载入。但实际项目中,可能我们还需要载入和显示一些不在UI包里的,我们称之为“外部”的图片。默认的GLoader具有有限度的的加载外部资源的能力,它们是:

  1. AS3 使用flash.display.Loader加载的外部资源。

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

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

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

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

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

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

学习分享

在当下这个信息共享的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了

很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘

如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。

2021最新上万页的大厂面试真题

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

七大模块学习资料:如NDK模块开发、Android框架体系架构…

fairygui怎么做3d ui,2024年程序员学习,unity,ui,游戏引擎

只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。

这份体系学习笔记,适应人群:
**第一,**学习知识比较碎片化,没有合理的学习路线与进阶方向。
**第二,**开发几年,不知道如何进阶更进一步,比较迷茫。
第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!
由于文章内容比较多,篇幅不允许,部分未展示内容以截图方式展示

很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘

如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。

2021最新上万页的大厂面试真题

[外链图片转存中…(img-niUh0oPq-1711964527837)]

七大模块学习资料:如NDK模块开发、Android框架体系架构…

[外链图片转存中…(img-FlmqZO6y-1711964527838)]

只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。

这份体系学习笔记,适应人群:
**第一,**学习知识比较碎片化,没有合理的学习路线与进阶方向。
**第二,**开发几年,不知道如何进阶更进一步,比较迷茫。
第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!
由于文章内容比较多,篇幅不允许,部分未展示内容以截图方式展示

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录文章来源地址https://www.toymoban.com/news/detail-851522.html

到了这里,关于Unity跨平台UI解决方案:可能是最全的FairyGUI系列教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Avalonia UI跨平台WPF

    Avalonia是一个强大的框架,使开发人员能够使用.NET创建跨平台应用程序。 它使用自己的渲染引擎绘制UI控件,确保在Windows、macOS、Linux、Android、iOS和WebAssembly等不同平台上具有一致的外观和行为。 官网链接: 官网链接 文档链接: 中文文档

    2024年04月27日
    浏览(26)
  • Flutter实现Service + UI 全面跨平台

    作者:Karl_wei Flutter作为跨平台的UI框架,其可行性已经被市场所认可。UI跨端后,我们自然会希望一些运行在 终端的小服务也能跨端 ,特别是当这个小服务还涉及到一些 UI 的展示。 我们希望Flutter能承担这个角色,让其跨端能力更进一步。 我们希望在整机设备上,运行一个

    2024年02月12日
    浏览(26)
  • 跨平台开发方案的三个时代

    跨平台开发从本质上讲是为了增加业务代码的复用率,减少因为要适配多个平台带来的工作量,从而降低开发成本。在提高业务专注度的同时,能够为用户提供一致的用户体验,实现“多快好省”的效果。 跨平台是跨哪些平台?怎么样的跨平台逻辑?从当前的实际情况来看,

    2024年02月09日
    浏览(35)
  • 盘点| 三种移动跨平台方案

    跨平台技术是前端人必备技能,今天就来为大家解读一下近几年业界主流的三大移动端跨平台方案: Web 天然跨平台: Web App、PWA(Progressive Web Apps)、Hybrid App、PHA(Progress Hybrid App)都可以实现跨平台,WebView 是一种基于浏览器内核的跨平台解决方案,通过在移动应用中嵌入一

    2024年02月08日
    浏览(32)
  • CPF C#跨平台UI框架开源了

    C#跨平台UI框架 提供NETStandard2.0和net4的库,通过Netcore可以跨平台,支持Windows、Mac、Linux,Net4的可以支持XP。 各个平台运行效果一致,不依赖系统控件。 支持窗体,控件任意透明,支持异形窗体,支持SVG图标显示。 支持动画,数据绑定,Mvvm模式,CSS等,简化依赖属性,数据绑

    2024年02月05日
    浏览(31)
  • 探索Avalonia:C#跨平台UI框架的力量

    随着跨平台应用的需求不断增长,开发人员需要一种能够在不同操作系统上运行的用户界面(UI)框架。 Avalonia 是一种引人注目的选择。在本文中,我们将深入了解 Avalonia 是什么,它与 WPF 的区别,以及它的 UI 绘制引擎和原理、优点,以及一个简单的示例代码。 Avalonia 是什

    2024年04月08日
    浏览(28)
  • Ripple UI: 打造卓越的跨平台移动应用体验

    BlackBerry 开发的 Ripple UI 是一个非常实用的工具,可以用于创建和测试 HTML5 移动应用程序。它提供了一种简单的方法来模拟不同设备上的用户体验,并且可以在实际设备上轻松部署和调试应用程序。 Ripple UI 是一个基于 Web 的开发环境,旨在帮助开发者快速构建和测试 HTML5 应用

    2024年03月21日
    浏览(39)
  • 微信跨平台方案Donut快速上手

    Donut 是微信开发出的多端框架,用于支持使用小程序原生语法开发移动应用的框架,开发者可以一次编码,就可以编译出小程序和 Android 以及 iOS 应用,实现多端开发。能够帮助企业有效降低多端应用开发的技术门槛和研发成本,以及提升开发效率和开发体验。 目前,Donut已

    2024年02月14日
    浏览(32)
  • Net跨平台UI框架Avalonia入门-安装和使用

    Avalonia UI是是Net的跨平台UI框架,支持 Windows、Linux、iOS 和 Android,与Net其他UI框架相比,如WPF(Windows平台)、MAUI跨平台控件(Android、iOS、macOS 和 Windows),主要优势是支持Linux。在国产化的需求下,对于C#开发的程序员,Avalonia适合用来开发Linux的桌面客户端。 v11版本已经发布

    2024年02月05日
    浏览(58)
  • Flutter的Platform介绍-跨平台开发,如何根据不同平台创建不同UI和行为

    Flutter 平台(Platform)是一个概念,用于描述 Flutter 框架在不同操作系统(如Android、iOS、Web、macOS、Windows等)上运行时的适应性和支持。Flutter 旨在实现跨平台开发,使开发人员能够使用单一代码库构建应用程序,然后在多个平台上运行,而无需编写平台特定的代码。以下是有

    2024年02月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包