1:更新完unity的5.3.1 版本 后,打开SimpleFrameworld_UGUI 后出现
error CS0117: 'System.IO.Directory' does not contain a definition for 'Delete'
error CS0117: 'System.IO.File' does not contain a definition for 'WriteAllBytes'
具体图片
出现这个问题的原因是 新版本的unity更新后 平台的的转换没有下载,unity作为一款引擎也是想的够多的了,如果全部平台都下载,将会是非常大的一个安装包3G 以上吧,所以在下载的时候人性化的提供了选择平台下载,而我们这里做手游基本上只需要PC+android+ios这3个平台即可了(默认是web,原来web才是unity的亲儿子)
ok 找到原因了,就简单了,自己去下载对应平台的文件,然后安装到你unity的安装目录上即可,由于平台文件很大,这里就不传了。官网有对应的下载
安装完了后,在unity 的buildsetting 处就可以切换平台了,然后上面的问题就可以解决了。
2:Android 部分手机在云测试上面出现安装不了的情况
这个问题查了好久最后发现在unity 打包配置处 也就是buildsetting处默认是安装在SDCARD上面的,而有些手机没有SDCARD,所以导致了安装不上,改为安装在Internal only 即可
3:运行ulua自带的demo 到时候出现
DllNotFoundException: ulua
LuaInterface.LuaState..ctor () (at Assets/uLua/Core/Lua.cs:36)
HelloWorld.Start () (at Assets/uLua/Examples/01_HelloWorld/HelloWorld.cs:9)
网上找了一堆,大致上的解决方案
1> 将Plugins放到Assets目录下
2>一个是DLL没有找到的问题(DllNotFoundException: ulua),目前得到的结论是,真机没有打包libulua.so进包导致,或者模拟器也有些设置不对。打包的时候把libulua.so打包进libs\armeabi-v7a
3> 重新wrap 然后重启unity
然而以上并没啥卵用
4>最后偶然发现我的unity中ulua在pc平台是x86_64位的,而实际上我的电脑是32位win7 系统,所以导致找不到了,突然发现plugins下其实是有一个x86的压缩包的,接压后运行报错消失(我估计很多人都被坑了)
4: lua 调用 c# 函数报错
LuaScriptException: [string "E:/gitHub/SimpleFramework_UGUI/Assets/lua/Log..."]:18: no overload for method 'LoginData.Equip' takes '3' arguments
stack traceback:
[C]: in function 'Equip'
[string "E:/gitHub/SimpleFramework_UGUI/Assets/lua/Log..."]:18: in function <[string "E:/gitHub/SimpleFramework_UGUI/Assets/lua/Log..."]:17>
LuaInterface.LuaFunction.call (System.Object[] args, System.Type[] returnTypes) (at Assets/uLua/Core/LuaFunction.cs:74)
LuaInterface.LuaFunction.Call (System.Object[] args) (at Assets/uLua/Core/LuaFunction.cs:88)
LuaScriptMgr.CallLuaFunction (System.String name, System.Object[] args) (at Assets/uLua/Source/Base/LuaScriptMgr.cs:600)
LoginUIPanel.OnGUI () (at Assets/XprojectDemo/LoginUIPanel.cs:15)
解决办法: data.Equip("pdw", "123456", 1); ==>data:Equip("pdw", "123456", 1); 将点号 改为 冒号即可。
5: attempt to concatenate local 'trans' (a userdata value)
stack traceback:
[string "F:/XProject_FrameWork/XProject_FrameWork/Asse..."]:8: in function 'GetButtonByPath'
[string "F:/XProject_FrameWork/XProject_FrameWork/Asse..."]:13: in function <[string "F:/XProject_FrameWork/XProject_FrameWork/Asse..."]:12>
LuaInterface.LuaFunction.call (System.Object[] args, System.Type[] returnTypes) (at Assets/uLua/Core/LuaFunction.cs:74)
LuaInterface.LuaFunction.Call (System.Object[] args) (at Assets/uLua/Core/LuaFunction.cs:88)
LuaScriptMgr.CallLuaFunction (System.String name, System.Object[] args) (at Assets/uLua/Source/Base/LuaScriptMgr.cs:604)
凡是报错提示是 (a userdata value)表示的是:lua不认识的数据类型,检查一下你的数据类型是不是unity的,比如transform,GameObject等等,我这里是这样的在lua脚本里面这样写了~
print("transform ="..trans); 改为print("transform ="..trans.name); 就不会出错了