通过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<LuaFunction>("AddRes");
object[] os= func.Call(3, 7);
foreach(object o in os)
{
print(o);
}
}
private void OnDestroy()
{
env.Dispose();
}
}
输出结果:
img.jpg
img.jpg
注意:
1、该方式优点是:不需要声明委托,生成代码,缺点:耗性能,类型不安全
2、使用也简单,LuaFunction上有个变参的Call函数,可以传任意类型,任意个数的参数,返回值是object的数组,对应于lua的多返回值。