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

简介: 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!

👉即将学会

从头到尾了解并学习FairyGUI在Unity平台的应用

👉背景

Unity 2019.x系列

FairyGUI 2021.2系列

👉实践过程

窗口

窗口花样百出,可以设置任意组件作为她的显示内容,且窗口支持拖动。

窗口样式内容你需要在FairyGUI中提前编辑好,制作好后,需要在Unity中用代码进行管理。

Window win = new Window();

GRoot里提供了一些窗口管理的常用API。

  1. BringToFront 把窗口提到所有窗口的最前面。
  2. CloseAllWindows 隐藏所有窗口。注意不是销毁。
  3. CloseAllExceptModals 隐藏所有非模态窗口。
  4. GetTopWindow 返回当前显示在最上面的窗口。
  5. hasModalWindow 当前是否有模态窗口在显示。

动效-重点

又是一个重点,FairyGUi除了静态UI外,动效UI做起来也很轻松

在上面讲编译器主页面的时候就说过了动效。更多图文并茂参考官方文档。

适配

做过Android开发的都知道,适配是个体力活,一分钟开发三分钟适配,即使开始经验充足或者使用了今日头条的适配,后续仍然可能有需要适配的。

FairyGUI为手游提供了自动适应各个设备分辨率的UI策略。选择一个设计分辨率的图片(通常为全屏界面)来进行开发,运行的时候会根据设备将UI界面经过缩放投到屏幕上。

有一个很有意思的机制:假如整体需要放大两倍的话,一个窗口为400*400的,投射到屏幕上是800*800放大后的,但是你用代码读取窗口的宽高时,仍然是400*400且坐标也不变化。

除了等比的缩放,有一点就得需要注意-全屏,现在有的全面屏手机,高度贼拉长,有的高度正常,大部分手机宽度基本一致,这就导致宽高比不一样,就需要有所调整了:

如果你使用的是UIPanel,那么在Inspector上设置Fit Screen为Fit Size就可以了

多国语言

三部曲

  1. 现在FairyGUI中做好你的界面,最后再适配多国语言,点击“工具-字符串导入和导出”,导出来
  2. 复制一份导出来的文件,开始进行翻译,翻译完毕后修改下文件后缀挂上en和上面导出的放在同一地方(Unity里面的文件夹)
  3. 代码动态加载语言文件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开源地址:github.com/fairygui/ps…,看名字就知道她是将PSD转为FGUI。

首先准备PSD文件:

网络异常,图片无法展示
|

如上图所示,使用图层名称或组名称来表达它的类型和用途。以下是约定的细节:

按钮 组的名称以Button开始表示这个组是一个按钮。组内的层如果名称中含有下面定义的特殊字符串(注意是包含即可,不是相同。推荐作为后缀),表示这个图层的特别含义:

@up 这个图层只在按钮的up状态显示

@over 这个图层只在按钮的over状态显示

@down 这个图层只在按钮的down状态显示

@selectedOver 这个图层只在按钮的selectedOver状态显示

@title 文字用作按钮的标题

@icon 图片用作按钮的图标

组件 组的名称以Com开始表示这个组是一个组件。组件可以嵌套。

用命令进行转换提取,之后在FairyGUI中导入资源包。

Unity使用

将编辑好的UI在Unity中使用也很简单

  1. Unity下载FairyGUI插件并导入
  2. 将Fairy GUI中发布的资源放到Unity项目文件夹下,Resources下即可
  3. 如果第一步成功,在你的场景Hierarchy中右键会有FairyGUI选项,创建UIPanel
  4. 在UIPanel中的Package Name选择你在FairyGUI的包名,ComponentName选择你的主场景组件
  5. 显示成功,你还可以添加UIContentScaler脚本设置分辨率相关


👉其他

📢作者:小空和小芝中的小空

📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

目录
打赏
0
0
0
0
2
分享
相关文章
HarmonyOS ArkTS声明式UI开发实战教程
本文深入探讨了ArkTS作为HarmonyOS生态中新一代声明式UI开发框架的优势与应用。首先对比了声明式与命令式开发的区别,展示了ArkTS如何通过直观高效的代码提升可维护性。接着分析了其核心三要素:数据驱动、组件化和状态管理,并通过具体案例解析布局体系、交互组件开发技巧及复杂状态管理方案。最后,通过构建完整TODO应用实战,结合调试优化指南,帮助开发者掌握声明式UI设计精髓,感受ArkTS的独特魅力。文章鼓励读者通过“破坏性实验”建立声明式编程思维,共同推动HarmonyOS生态发展。
110 3
用自然语言控制电脑,字节跳动开源 UI-TARS 的桌面版应用!内附详细的安装和配置教程
UI-TARS Desktop 是一款基于视觉语言模型的 GUI 代理应用,支持通过自然语言控制电脑操作,提供跨平台支持、实时反馈和精准的鼠标键盘控制。
1837 17
用自然语言控制电脑,字节跳动开源 UI-TARS 的桌面版应用!内附详细的安装和配置教程
unity判断鼠标在不在UI上
在 Unity 中,判断鼠标是否在 UI 上主要依赖事件系统和射线检测机制。Unity 的事件系统负责处理输入事件,GraphicRaycaster 组件用于检测射线与 UI 元素的相交情况。通过 `EventSystem.current.IsPointerOverGameObject()` 方法可轻松判断鼠标是否在 UI 上。对于移动端,使用 `EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)` 来判断触摸是否在 UI 上。代码实现简单且高效。
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
4045 2
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
全新紫色新UI数码盲盒系统源码/全开源无加密/附教程
全新紫色新UI数码盲盒系统源码/全开源无加密/附教程 前端uniapp+H5 后端FastAdmin框架 可打包成APP多端运行 亲测可用
144 13
rabbitmq基础教程(ui,java,springamqp)
本文提供了RabbitMQ的基础教程,包括如何使用UI创建队列和交换机、Java代码操作RabbitMQ、Spring AMQP进行消息发送和接收,以及如何使用不同的交换机类型(fanout、direct、topic)进行消息路由。
76 0
rabbitmq基础教程(ui,java,springamqp)
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
505 0
一个开源、跨平台的.NET UI框架 - Avalonia UI
一个开源、跨平台的.NET UI框架 - Avalonia UI
345 3
Uno Platform 高级定制秘籍:深度解析与实践样式和模板应用,助你打造统一且高效的跨平台UI设计
【9月更文挑战第7天】Uno Platform 是一个强大的框架,支持使用 C# 和 XAML 创建跨平台 UI 应用,覆盖 Windows、iOS、Android、macOS 和 WebAssembly。本文介绍 Uno Platform 中样式和模板的应用,助力开发者提升界面一致性与开发效率。样式定义控件外观,如颜色和字体;模板则详细定制控件布局。通过 XAML 定义样式和模板,并可在资源字典中全局应用或嵌套扩展。合理利用样式和模板能简化代码、保持设计一致性和提高维护性,帮助开发者构建美观高效的跨平台应用。
167 1
【独家揭秘】那些让你的游戏瞬间鲜活起来的Unity UI动画技巧:从零开始打造动态按钮,提升玩家交互体验的绝招大公开!
【9月更文挑战第1天】在游戏开发领域,Unity 是最受欢迎的游戏引擎之一,其强大的跨平台发布能力和丰富的功能集让开发者能够迅速打造出高质量的游戏。优秀的 UI 设计对于游戏至关重要,尤其是在手游市场,出色的 UI 能给玩家留下深刻的第一印象。Unity 的 UGUI 系统提供了一整套解决方案,包括 Canvas、Image 和 Button 等组件,支持添加各种动画效果。
442 3

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等