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
☕原因
根据QFramework 作者提供的线索:“关闭代码剔除”
🍤 解决方案
但但但是项目中需要开启它,这时候要在相关的类加上[UnityEngine.Scripting.Preserve]
告诉编辑器本大爷罩着这个类,你不许剔除它哦😎!
当然不需要把所有的脚本都加上,但又不想一个一个加怎么办呢?
💡.建个空工程导入QFramework包
💡.Project中搜索Example全选删除。(APIExampleCodeAttribute
不要删)
💡.打开脚本搜索public class
,替换:[UnityEngine.Scripting.Preserve] public class
。 (注意class后带一个空格)
💡.替换后有些类还有问题比如带seale、abstract的,按类似的方法改就行了。
在vs中使用查找替换功能:Ctrl + F ,可以实现快速替换。
添加Preserve后打包并没增加多少,可以忽略不计。
💡下载