想给所有的Label控件添加一个统一的回调

我现在是在引擎的创建字体成功后抛出一个触发事件, 但是这样需要修改引擎代码。
有不修改引擎源码的办法吗?

需求是 不管是预制体里面的字体 ,还是代码创建的字体, 都统一设置ttf文件名

node.getComponentsInChildren(cc.Label),你试试这个

如果不是动态生成的Label,可以在某个时机去遍历节点树,找到有Label组件的节点,去设置ttf,动态生成的就好解决了,封装一个方法就可以了。可以做到实时切换字体或者中英文这些功能。

或者自定义一个组件,继承cc.Label,然后你的项目里都使用这个自定义的Label组件也行。

我还是改引擎了, 自定义label不好用。

这个是要后期去获取吧, 我是要生成的时候自动触发一个通用的函数。
不管是预制体自带的 label 还是 代码动态创建的label 都触发。
我现在是在引擎里面加一个事件触发, 然后在js里面添加"EventCreateLabel" 绑定

百度一下 猴子补丁

一个不太好的用法

const oldFun = cc.Label.prototype.xxx;
cc.Label.prototype.xxx = function(...args){
    oldFun.apply(this, args);
    // todo
    event.emit('xxx', data);
}