FairyGUI 在 Unity 中异步加载字体

Unityhwei 发表了文章 • 0 个评论 • 18 次浏览 • 1 天前 • 来自相关话题

如果你在开发小游戏,字体文件通常很大,并且需要在第一次运行时下载。这有可能会影响首屏加载性能。
 
为了解决这个问题,我们不用等待字体下载好,先提前显示 UI。
此时 UI 中的中文可能会无法显示。
不过没关系,等字体下载好再用下面这个函数来加载字体:
public static void SetFont(string name, Font font)
{
// 如果其他 UI 已经用过 name 字体,则获得该字体的动态字体对象,否则 GetFont 会自动返回一个默认动态字体。
var dynamicFont = FairyGUI.FontManager.GetFont(name) as FairyGUI.DynamicFont;
// 无论如何,更新这个字体背后的 Unity Font 对象
dynamicFont.nativeFont = font;
// version 变化会触发使用到这个字体的 UI 刷新
dynamicFont.version += 1;
}于是就做到了异步加载字体。
 
进一步优化:先用一个体积比较小的字体覆盖所有 UI 用到的字体,让中文先可读。然后等体积大的正式字体下载完毕再覆盖上去,提升画面效果。 查看全部
如果你在开发小游戏,字体文件通常很大,并且需要在第一次运行时下载。这有可能会影响首屏加载性能。
 
为了解决这个问题,我们不用等待字体下载好,先提前显示 UI。
此时 UI 中的中文可能会无法显示。
不过没关系,等字体下载好再用下面这个函数来加载字体:
public static void SetFont(string name, Font font)
{
// 如果其他 UI 已经用过 name 字体,则获得该字体的动态字体对象,否则 GetFont 会自动返回一个默认动态字体。
var dynamicFont = FairyGUI.FontManager.GetFont(name) as FairyGUI.DynamicFont;
// 无论如何,更新这个字体背后的 Unity Font 对象
dynamicFont.nativeFont = font;
// version 变化会触发使用到这个字体的 UI 刷新
dynamicFont.version += 1;
}
于是就做到了异步加载字体。
 
进一步优化:先用一个体积比较小的字体覆盖所有 UI 用到的字体,让中文先可读。然后等体积大的正式字体下载完毕再覆盖上去,提升画面效果。

插件API

编辑器使用残魂 回复了问题 • 2 人关注 • 1 个回复 • 109 次浏览 • 2025-10-15 16:54 • 来自相关话题

在cocos creator中3.8.4关联系统失效

CocosCreatorloop 回复了问题 • 2 人关注 • 2 个回复 • 105 次浏览 • 2025-10-13 20:31 • 来自相关话题

[插件]invalid arguments to ToHexString异常问题

编辑器使用cnscj 回复了问题 • 2 人关注 • 2 个回复 • 118 次浏览 • 2025-10-13 09:47 • 来自相关话题

Stage没有SetSize为屏幕的尺寸,而是设置为了一个小于屏幕的尺寸,在Unity正常捕获触摸,在其他平台触摸位置偏移较大

Unity谷主 回复了问题 • 2 人关注 • 1 个回复 • 92 次浏览 • 2025-10-12 10:07 • 来自相关话题

修改资源路径,引用这些资源的xml里的fileName不会马上更新,需要修改这个界面的任意属性才会更新

编辑器使用谷主 回复了问题 • 2 人关注 • 2 个回复 • 145 次浏览 • 2025-10-11 16:31 • 来自相关话题

creator 3.8.7引擎下,textinput的bug

CocosCreator谷主 回复了问题 • 2 人关注 • 1 个回复 • 115 次浏览 • 2025-10-11 16:26 • 来自相关话题

GoWrapper的CloneMaterials

Unity谷主 回复了问题 • 2 人关注 • 1 个回复 • 75 次浏览 • 2025-10-11 15:36 • 来自相关话题

图形的圆角在cocos中失效

CocosCreator谷主 回复了问题 • 2 人关注 • 1 个回复 • 73 次浏览 • 2025-10-11 14:48 • 来自相关话题

在fairygui里有没有像cocos creator中一样的预设体

CocosCreator谷主 回复了问题 • 2 人关注 • 1 个回复 • 104 次浏览 • 2025-10-11 14:45 • 来自相关话题

如何快速导出所有Panel为预览图?

编辑器使用谷主 回复了问题 • 2 人关注 • 1 个回复 • 91 次浏览 • 2025-10-11 14:44 • 来自相关话题

FairyGUI Godot已经有人做了一版移植,有考虑修改Editor支持发布Godot么?

编辑器使用谷主 回复了问题 • 2 人关注 • 1 个回复 • 246 次浏览 • 2025-09-22 11:42 • 来自相关话题

[LayaAirIDE3]3.3.1 image设置了填充效果水平,图片显示不出来

Laya谷主 回复了问题 • 2 人关注 • 1 个回复 • 138 次浏览 • 2025-09-22 11:42 • 来自相关话题

多边形图形作为遮罩,在CocosCreator中不生效

CocosCreator谷主 回复了问题 • 2 人关注 • 1 个回复 • 181 次浏览 • 2025-09-22 11:42 • 来自相关话题

Unity中, 文本设置最小尺寸, 对齐设置居中, 自动大小设置宽度高度, 居中的设置无效

Unity谷主 回复了问题 • 2 人关注 • 1 个回复 • 152 次浏览 • 2025-09-22 11:41 • 来自相关话题

Cocos Creator 鼠标事件中Event.button 值一直返回0,无法取分左右键。

CocosCreatorhhp 回复了问题 • 3 人关注 • 3 个回复 • 668 次浏览 • 2025-09-19 15:42 • 来自相关话题

macOs 13.2.1 Intel , 使用fgui mac最新版,卡顿严重

回复

编辑器使用青青河边草 回复了问题 • 1 人关注 • 2 个回复 • 167 次浏览 • 2025-09-08 17:01 • 来自相关话题

切换场景后,第一次点击无效。

回复

Unityxiaomaitai 发起了问题 • 1 人关注 • 0 个回复 • 167 次浏览 • 2025-09-06 12:39 • 来自相关话题

使用 UIPackage AddPackage(byte[] descData, string assetNamePrefix, LoadResourceAsync loadFunc)纹理显示不正确

Unity谷主 回复了问题 • 2 人关注 • 1 个回复 • 141 次浏览 • 2025-09-05 21:20 • 来自相关话题

在cocoscreator3.8.2里FairyGUI 设置的add等叠加模式无法生效

CocosCreator谷主 回复了问题 • 2 人关注 • 1 个回复 • 200 次浏览 • 2025-09-05 16:46 • 来自相关话题