cocos creator 使用的fairygui sdk目前的最新版本是多少了。 我npm安装的是1.2.2是新版本吗?

回复

yydfw 回复了问题 • 1 人关注 • 1 个回复 • 198 次浏览 • 2026-04-07 18:14 • 来自相关话题

滚动条,滑动条

回复

tangxiaoseng 发起了问题 • 1 人关注 • 0 个回复 • 214 次浏览 • 2026-03-17 11:03 • 来自相关话题

还有群吗,渲染问题!

回复

candy 发起了问题 • 1 人关注 • 0 个回复 • 248 次浏览 • 2026-03-11 13:32 • 来自相关话题

组件关联问题

回复

endison1111 回复了问题 • 1 人关注 • 4 个回复 • 223 次浏览 • 2026-02-18 18:48 • 来自相关话题

可能给btn增加传入字体的功能吗

回复

loes012 发起了问题 • 1 人关注 • 0 个回复 • 189 次浏览 • 2026-02-12 18:30 • 来自相关话题

关于发布后纹理集问题

chenzm 回复了问题 • 3 人关注 • 2 个回复 • 423 次浏览 • 2026-01-24 16:24 • 来自相关话题

控制器的动作如何停止

heartkey 回复了问题 • 3 人关注 • 2 个回复 • 389 次浏览 • 2025-12-15 14:19 • 来自相关话题

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

Erin 回复了问题 • 3 人关注 • 2 个回复 • 510 次浏览 • 2025-12-15 14:19 • 来自相关话题

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

letYou 回复了问题 • 4 人关注 • 3 个回复 • 1367 次浏览 • 2025-11-28 17:20 • 来自相关话题

cocos3.8.7中支持颜色混合

GodChouyu 发表了文章 • 0 个评论 • 296 次浏览 • 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,谷主看到的话希望能合并一下。
 

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

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

在cocos creator中3.8.4关联系统失效

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

creator 3.8.7引擎下,textinput的bug

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

图形的圆角在cocos中失效

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

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

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

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

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

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

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

cocos2.2.1,使用装载器GLoader ,加载url,,url是https地址的,,,在安卓手机上不显示,,麻烦可以看一下这个问题吗

回复

cocos0524 发起了问题 • 1 人关注 • 0 个回复 • 496 次浏览 • 2025-07-16 19:08 • 来自相关话题

制作动效时改变spine播放的动画名称实际未生效

柠檬冰 回复了问题 • 2 人关注 • 2 个回复 • 605 次浏览 • 2025-07-14 19:02 • 来自相关话题

组件出场音效没有播放

谷主 回复了问题 • 2 人关注 • 1 个回复 • 469 次浏览 • 2025-06-23 17:10 • 来自相关话题