SLua踩坑指南:导出APK/导出AssetsBundle报错
2017-03-22 本文已影响0人
真诚的狗子
在导出APK或导出AssetsBundle时,报错。
内容大致上就是说各种类或变量找不到,是不是忘了组装引用(Assembly Reference),形式如下:
Assets/Slua/Editor/LuaCodeGen.cs(77,25): error CS1061: Type `SLua.Lua3rdMeta' does not contain a definition for `ReBuildTypes' and no extension method `ReBuildTypes' of type `SLua.Lua3rdMeta' could be found. Are you missing an assembly reference?
在群里问了,感谢群主Siney的耐心解答,后来我自己分析了下,可能原因是:
SLua在当前平台使用了当前平台不能使用的类或变量,或当前要使用的变量没有通过Slua引擎生成它需要的形式(就是Slua不认识这个Unity的类)。
这时要根据需要,把不应该在当前平台使用的类或变量加入SLua的忽略列表或者编译列表中。
举例:LuaCodeGen.cs中:
看到了吧,假设将最后的Light.lightmappingMode删掉,那么导出什么东西的时候,就会提示你lightMappingMode或者他里面的什么变量找不到了。
随着Unity版本的更新,各种类的用法可能会发生变化,当SLua的版本更新跟不上时就会出现这些问题。
解决方案就是紧跟官方Github脚步,更新SLua版本,或者时不时得pull一下。。