腾讯XLua 03-CSharp Invoke Lua

本文介绍如何使用腾讯的XLua框架,在C#中调用Lua函数,只需通过XLua提供的工具生成代码并进行相应调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using UnityEngine;
using System.Collections;
using XLua;

public class MyInvokeLua : MonoBehaviour {
//创建一个接口 用于生成 调用函数
    [CSharpCallLua] 
    //这是一个生成调用函数用的标签 生成CSharp调用Lua,加这标签
    public interface ICalc {
        int Add(int a, int b);
        int Mult { get; set; }
    }

    [CSharpCallLua]
    //(1)在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。
    //(2)该参数必须标识一个一维数组,但类型不限,对该参数传递null或者0个数目的数组的引用都是合法的*
    public delegate ICalc CalcNew(int mult, params string[] arg);
                //创建一个元表
    private string script = @"
                local cal_mt = {
                    __index = {
                        Add = function(self, a, b)
                            return (a + b) * self.Mult
                        end
                      }
                 }
                 //设置创建函数
                  Calc = {
                      New = function(mult, ...)
                            print(...)
                            return setmetatable({Mult = mult}, calc_mt)
                      end
                    }
                ";

    void Start() {
        LuaEnv luaenv = new LuaEnv();
        luaenv.DoString(script);
        //获得Calc.New方法 转换为CalcNew委托
        CalcNew calc_new = luae
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值