【xLua】添加CSharpCallLua还是报错

添加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,终于没报错了

猜你喜欢

转载自blog.csdn.net/weixin_38211198/article/details/89527758