weixin_59250300 2024-05-15 16:52 采纳率: 40%
浏览 4
已结题

C#使用Interface映射Lua的Table时,没有拿到值

using System;
using System.Xml;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using XLua;

[CSharpCallLua]
public interface MyStudent
{
    string Name { get; set; }
    int Age { get; set; }

    void skill(int a, int b);
}

public class StudentTest
{
    public string name;
    public int age;
    public int skill(int a, int b)
    {
        return a + b;
    }
}

public class CsharpCallTable : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {

        xLuaEnv.Instance.DoString("require('Csharp调用Lua/CsharpCallTable')");

        #region Interface

        var student = xLuaEnv.Instance.Global.Get<MyStudent>("student");



        Debug.Log($"name = {student.Name},age = {student.Age}");


        student.skill(1, 2);


        student.Name = "lisi";
        student.Age = 25;

        xLuaEnv.Instance.DoString("print(student.name,student.age)");
        Debug.Log($"name = {student.Name},age = {student.Age}"); 
        #endregion

        #region LuaTable
        //LuaTable g = xLuaEnv.Instance.Global;
        //LuaTable student = g.Get<LuaTable>("student");

        //Debug.Log(student.Get<string>("name"));
        //Debug.Log(student.Get<int>("age")); 
        #endregion
    }

    private void OnDestroy()
    {
        //释放Lua解析环境
        xLuaEnv.Instance.Free();
    }
}


student = {
    name = "zhangsan",
    age = 22,
    skill = function(self,a,b)
        print(a + b)
        print("Fly")
    end

}

第一次输的时候name和age没有值,修改值以后在输出时,输出的时修改之前的值,再次输出才是修改后的值;

img

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-15 16:52
    关注

    确保C#接口属性与Lua表键名匹配。

    以上回复有部分引自免费微信小程序:皆我百晓生。 如问题尚未解决,还请稍待,如有疑问请回复进一步沟通。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月24日
  • 已采纳回答 5月16日
  • 创建了问题 5月15日

悬赏问题

  • ¥15 Windows Script Host 无法找到脚本文件"C:\ProgramData\Player800\Cotrl.vbs”
  • ¥15 matlab自定义损失函数
  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图