cc3.7.2,使用registerFont 注册字体,fairygui设置全局字体不生效?

CocosCreatorletYou 回复了问题 • 4 人关注 • 3 个回复 • 955 次浏览 • 3 天前 • 来自相关话题

插件ImportResource后,资源不会立刻显示在包内,需要重新打开工程才能出现

回复

编辑器使用misakacirno 发起了问题 • 1 人关注 • 0 个回复 • 28 次浏览 • 3 天前 • 来自相关话题

在FairyGUI里创建组件到鼠标位置

编辑器使用谷主 回复了问题 • 2 人关注 • 1 个回复 • 104 次浏览 • 4 天前 • 来自相关话题

unity里边TMP字体放在场景里边,改变缩放会导致字体显示异常

Unity谷主 回复了问题 • 2 人关注 • 2 个回复 • 84 次浏览 • 4 天前 • 来自相关话题

关于发布后纹理集问题

CocosCreator谷主 回复了问题 • 2 人关注 • 1 个回复 • 111 次浏览 • 4 天前 • 来自相关话题

编辑器插件如何添加新发布属性

编辑器使用谷主 回复了问题 • 2 人关注 • 1 个回复 • 126 次浏览 • 4 天前 • 来自相关话题

在编辑器中将滑动条属性中的最大值设置为0时可能会报错

编辑器使用谷主 回复了问题 • 2 人关注 • 1 个回复 • 94 次浏览 • 4 天前 • 来自相关话题

控制器的动作如何停止

CocosCreator谷主 回复了问题 • 2 人关注 • 1 个回复 • 100 次浏览 • 4 天前 • 来自相关话题

Fgui 渲染层级问题

Unity谷主 回复了问题 • 2 人关注 • 1 个回复 • 86 次浏览 • 4 天前 • 来自相关话题

插件检查器ui如何更新

编辑器使用谷主 回复了问题 • 2 人关注 • 1 个回复 • 54 次浏览 • 4 天前 • 来自相关话题

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

UnityXfeifan 回复了问题 • 3 人关注 • 2 个回复 • 287 次浏览 • 6 天前 • 来自相关话题

列表中组件部分资源无法被裁剪

UnityXfeifan 回复了问题 • 3 人关注 • 3 个回复 • 114 次浏览 • 6 天前 • 来自相关话题

[Laya2.0]Label中设置延展和自动收缩导致卡死bug

回复

Layacnscj 发起了问题 • 1 人关注 • 0 个回复 • 66 次浏览 • 2025-11-14 19:19 • 来自相关话题

cocos3.8.7中支持颜色混合

CocosCreatorGodChouyu 发表了文章 • 0 个评论 • 79 次浏览 • 2025-11-14 19:05 • 来自相关话题

仅在cocos3.8.7中测试。
两种方法。
1.可以修改源码的情况下,修改BlendMode.ts文件的apply函数。
public static apply(node: Node, blendMode: BlendMode) {
let f = factors[<number>blendMode];
node.components.forEach(component => {
if (component instanceof UIRenderer) {
component["_srcBlendFactor"] = f[0];
component["_dstBlendFactor"] = f[1];
}
})
}2.不修改源码,覆盖GObject的setup_beforeAdd方法。随意一个脚本中添加并调用Init();
public static init() {
const factors = [
[gfx.BlendFactor.SRC_ALPHA, gfx.BlendFactor.ONE_MINUS_SRC_ALPHA], //normal
[gfx.BlendFactor.ONE, gfx.BlendFactor.ONE], //none
[gfx.BlendFactor.SRC_ALPHA, gfx.BlendFactor.ONE], //add
[gfx.BlendFactor.DST_COLOR, gfx.BlendFactor.ONE_MINUS_SRC_ALPHA], //mul
[gfx.BlendFactor.ONE, gfx.BlendFactor.ONE_MINUS_SRC_COLOR], //screen
[gfx.BlendFactor.ZERO, gfx.BlendFactor.ONE_MINUS_SRC_ALPHA], //erase
[gfx.BlendFactor.ZERO, gfx.BlendFactor.SRC_ALPHA], //mask
[gfx.BlendFactor.ONE_MINUS_DST_ALPHA, gfx.BlendFactor.DST_ALPHA], //below
[gfx.BlendFactor.ONE, gfx.BlendFactor.ZERO], //off
[gfx.BlendFactor.SRC_ALPHA, gfx.BlendFactor.ONE_MINUS_SRC_ALPHA], //custom1
[gfx.BlendFactor.SRC_ALPHA, gfx.BlendFactor.ONE_MINUS_SRC_ALPHA], //custom2
[gfx.BlendFactor.SRC_ALPHA, gfx.BlendFactor.ONE_MINUS_SRC_ALPHA], //custom2
];

const GObjectSetupBeforeAdd = fgui.GObject.prototype.setup_beforeAdd;
fgui.GObject.prototype.setup_beforeAdd = function (this: fgui.GObject, buffer: ByteBuffer, beginPos: number) {
GObjectSetupBeforeAdd.call(this, buffer, beginPos);
let f = factors[<number>this.blendMode];
this.node.components.forEach(component => {
if (component instanceof cc.UIRenderer) {
component["_srcBlendFactor"] = f[0];
component["_dstBlendFactor"] = f[1];
}
})
}
}
因为blend模块的相关代码没有导出,所以先这么处理。factors数组是从fgui源码中复制出来的。
_srcBlendFactor和_dstBlendFactor两个属性的cocos源码在cocos源码地址。
 
已经提交pr,谷主看到的话希望能合并一下。
  查看全部
仅在cocos3.8.7中测试。
两种方法。
1.可以修改源码的情况下,修改BlendMode.ts文件的apply函数。
public static apply(node: Node, blendMode: BlendMode) {
let f = factors[<number>blendMode];
node.components.forEach(component => {
if (component instanceof UIRenderer) {
component["_srcBlendFactor"] = f[0];
component["_dstBlendFactor"] = f[1];
}
})
}
2.不修改源码,覆盖GObject的setup_beforeAdd方法。随意一个脚本中添加并调用Init();
public static init() {
const factors = [
[gfx.BlendFactor.SRC_ALPHA, gfx.BlendFactor.ONE_MINUS_SRC_ALPHA], //normal
[gfx.BlendFactor.ONE, gfx.BlendFactor.ONE], //none
[gfx.BlendFactor.SRC_ALPHA, gfx.BlendFactor.ONE], //add
[gfx.BlendFactor.DST_COLOR, gfx.BlendFactor.ONE_MINUS_SRC_ALPHA], //mul
[gfx.BlendFactor.ONE, gfx.BlendFactor.ONE_MINUS_SRC_COLOR], //screen
[gfx.BlendFactor.ZERO, gfx.BlendFactor.ONE_MINUS_SRC_ALPHA], //erase
[gfx.BlendFactor.ZERO, gfx.BlendFactor.SRC_ALPHA], //mask
[gfx.BlendFactor.ONE_MINUS_DST_ALPHA, gfx.BlendFactor.DST_ALPHA], //below
[gfx.BlendFactor.ONE, gfx.BlendFactor.ZERO], //off
[gfx.BlendFactor.SRC_ALPHA, gfx.BlendFactor.ONE_MINUS_SRC_ALPHA], //custom1
[gfx.BlendFactor.SRC_ALPHA, gfx.BlendFactor.ONE_MINUS_SRC_ALPHA], //custom2
[gfx.BlendFactor.SRC_ALPHA, gfx.BlendFactor.ONE_MINUS_SRC_ALPHA], //custom2
];

const GObjectSetupBeforeAdd = fgui.GObject.prototype.setup_beforeAdd;
fgui.GObject.prototype.setup_beforeAdd = function (this: fgui.GObject, buffer: ByteBuffer, beginPos: number) {
GObjectSetupBeforeAdd.call(this, buffer, beginPos);
let f = factors[<number>this.blendMode];
this.node.components.forEach(component => {
if (component instanceof cc.UIRenderer) {
component["_srcBlendFactor"] = f[0];
component["_dstBlendFactor"] = f[1];
}
})
}
}

因为blend模块的相关代码没有导出,所以先这么处理。factors数组是从fgui源码中复制出来的。
_srcBlendFactor和_dstBlendFactor两个属性的cocos源码在cocos源码地址
 
已经提交pr,谷主看到的话希望能合并一下。
 

FGUI 编辑器插件如何获取文本和按钮的标题

回复

编辑器使用xiepeng888 发起了问题 • 1 人关注 • 0 个回复 • 108 次浏览 • 2025-11-11 10:54 • 来自相关话题

FairyEditor FPackage GetItemByPath用法

编辑器使用misakacirno 发表了文章 • 1 个评论 • 89 次浏览 • 2025-11-04 16:18 • 来自相关话题

路径为文件在Package中的相对路径,需要以/开头,无需带后缀名。
例如"/textures/shop/shop_icon_01"
路径为文件在Package中的相对路径,需要以/开头,无需带后缀名。
例如"/textures/shop/shop_icon_01"

关于分支发布后组件的型别消失问题

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

导入的是jpg格式图片,如何导出jpg格式的图片。

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

插件里FPackage中的ImportResource函数要怎么使用?

回复

编辑器使用misakacirno 回复了问题 • 1 人关注 • 3 个回复 • 289 次浏览 • 2025-11-03 17:25 • 来自相关话题

Fgui 插件Api CS.System.Array.CreateInstance()

Unity谷主 回复了问题 • 1 人关注 • 2 个回复 • 136 次浏览 • 2025-11-02 16:27 • 来自相关话题