Unity 解决QFramework WebGL报错

Unity 解决QFramework WebGL报错

  • 错误描述
  • ☕原因
  • 解决方案

错误描述

在新建工程中只导入了QFramework,Build WebGL(空场景) 会看到如下错误:

Exception: Non-Public Constructor() not found! in QFramework.SafeObjectPool`1[QFramework.DelayAction]
  at QFramework.SingletonCreator.CreateNonPublicConstructorObject[T] () [0x00000] in <00000000000000000000000000000000>:0

Unity 解决QFramework WebGL报错_第1张图片

☕原因

根据QFramework 作者提供的线索:“关闭代码剔除”
Unity 解决QFramework WebGL报错_第2张图片

解决方案

但但但是项目中需要开启它,这时候要在相关的类加上[UnityEngine.Scripting.Preserve] 告诉编辑器本大爷罩着这个类,你不许剔除它哦!

当然不需要把所有的脚本都加上,但又不想一个一个加怎么办呢?
.建个空工程导入QFramework包
.Project中搜索Example全选删除。(APIExampleCodeAttribute 不要删)
.打开脚本搜索public class ,替换:[UnityEngine.Scripting.Preserve] public class 。 (注意class后带一个空格)
.替换后有些类还有问题比如带seale、abstract的,按类似的方法改就行了。

在vs中使用查找替换功能:Ctrl + F ,可以实现快速替换。
Unity 解决QFramework WebGL报错_第3张图片
Unity 解决QFramework WebGL报错_第4张图片
添加Preserve后打包并没增加多少,可以忽略不计。
Unity 解决QFramework WebGL报错_第5张图片
下载

你可能感兴趣的:(UnityWebGL,Unity,unity,webgl,QFramework)