wechat-miniprogram / minigame-unity-webgl-transform

Wechat Mini Game Unity engine adapter documents.
https://wechat-miniprogram.github.io/minigame-unity-webgl-transform/
MIT License
3.01k stars 458 forks source link

无法处理GetWXFont的异常 #835

Closed flyreficul closed 3 weeks ago

flyreficul commented 3 months ago

描述Bug

GetWXFont()参数有二: fallbackUrl和callback. 并不像其他函数一样有success和fail.导致当"从微信获取字体失败 且 从CND获取字体也失败"时的异常无法被捕获且无法处理.

  UniTaskCompletionSource<Font> getWXFontCS = new UniTaskCompletionSource<Font>();
  WX.GetWXFont
  (
      fallbackUrl: "https://www......com/字体文件.ttf",
      (font) =>
      {
          getWXFontCS.TrySetResult(font);
      }
  );
  Font tempFont = await getWXFontCS.Task;
  if (tempFont != null)
  {
      fontAsset = TMP_FontAsset.CreateFontAsset(tempFont);
      startButton.transform.GetComponentInChildren<TMP_Text>().font = fontAsset;
      startButton.transform.GetComponentInChildren<TMP_Text>().text = "点击开始!";
  }

如以上代码,当"从微信获取字体失败 且 从CND获取字体也失败"时,程序会持续等待getWXFontCS.Task进而导致之后的代码均无法运行.

这或许不是个BUG。是否WXSDK默认 : 必须成功获取字体才能正常运行程序呢?

希望能有高手提供相关异常的处理办法!

运行环境

Windows11 / Tuanjie 1.2.2 / WXSDK 0.1.17 / 团结Editor自带 / Weixin MiniGame
Oooocean commented 1 month ago

这是接口设计问题,我们后续排期调整,提供 succ/fail参数