【XLua】012-C#访问Lua中的function:映射到LuaFunction

【XLua】012-C#访问Lua中的function:映射到LuaFunction_第1张图片

通过LuaFunction访问lua中的function

  • 1、Lua脚本中的function
--有参,有返回的全局function(),包括多个返回值
function AddRes(a,b)
    print("a".."+".."b="..a+b)
    return a+b,a,b
end

  • 2、C#脚本
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;

public class _004_CsharpCallLua : MonoBehaviour
{

    private LuaEnv env;


    void Start()
    {
        env = new LuaEnv();

        env.DoString("require 'CSharpCallLua'");

      

        //访问function 通过LuaFunction 
        LuaFunction func = env.Global.Get("AddRes");
        object[] os= func.Call(3, 7);
        foreach(object o in os)
        {
            print(o);
        }

    }

    private void OnDestroy()
    {
        env.Dispose();
    }


}

输出结果:

【XLua】012-C#访问Lua中的function:映射到LuaFunction_第2张图片
img.jpg

注意:

1、该方式优点是:不需要声明委托,生成代码,缺点:耗性能,类型不安全

2、使用也简单,LuaFunction上有个变参的Call函数,可以传任意类型,任意个数的参数,返回值是object的数组,对应于lua的多返回值。

你可能感兴趣的:(【XLua】012-C#访问Lua中的function:映射到LuaFunction)