添加CSharpCallLua还是报错
C#访问Lua中会用到CSharpCallLua这个属性
[CSharpCallLua]
interface IPerson
{
string name { get; set; }
int age { get; set; }
}
在将Lua中的table映射到一个interface时,尽管加了CSharpCallLua,还是报错了
InvalidCastException: This type must add to CSharpCallLua: CSharpCallLua+IPerson
XLua.LuaTable.Get[TKey,TValue] (TKey key, TValue& value) (at Assets/XLua/Src/LuaTable.cs:65)
XLua.LuaTable.Get[TValue] (System.String key) (at Assets/XLua/Src/LuaTable.cs:333)
CSharpCallLua.Start () (at Assets/Scenes/04-CSharpCallLua/CSharpCallLua.cs:27)
-
发现是xLua与Unity版本不兼容的问题
本次用的是Unity 2018.3.0f2和xlua_v2.1.14,会报错
尽管上面写着兼容Uniyt 2018版本,但实际上还是不支持 -
后来,又下了Unity 2017.4.25f1 和 xlua_v2.1.9,还是报错
-
然后,又下了Unity 2017.1.0f3 和xlua_v2.1.14,还是报错
-
最后,用Unity 2017.1.0f3 和xlua_v2.1.9,终于没报错了