vivo 小游戏 ttf 字体

vivo 小游戏使用 ttf 字体,会变成默认字体,
有人知道解决办法吗

john snow

希望对踏坑的朋友有帮助

在 load 场景先加载字体


这样弄完后系统字体也会变成 自己的ttf 字体,FontFamily 换一个名称即可

1赞

虎子威武~

楼主给的方法解决不了有多个自定义字体的情况。
这个问题本质上是 cocos 引擎在 vivo 平台上没取到字体的 fontFamily,导致 font._assetFamily 总是为默认值 ‘Arial’。

解决办法很简单,就是先给 font._assetFamily 赋值为字体正确的 family,再调用 qg.loadFont() 就行了。

    const fontBundle = cc.assetManager.getBundle(eBundleName.Font)
    fontBundle.load('SourceHanSerifSC-SemiBold', cc.Font, (error, asset) => {
        if (asset) {
            (asset as any)._fontFamily = 'SourceHanSerifSCSemiBold'
            qg.loadFont((asset as any)._fontFamily, "url('" + asset.nativeUrl + "')")
        }
    })
    fontBundle.load('SourceHanSerifSC-Heavy', cc.Font, (error, asset) => {
        if (asset) {
            (asset as any)._fontFamily = 'SourceHanSerifSCHeavy'
            qg.loadFont((asset as any)._fontFamily, "url('" + asset.nativeUrl + "')")
        }
    })
2赞