通過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();
}
}
輸出結(jié)果:
img.jpg
img.jpg
注意:
1、該方式優(yōu)點是:不需要聲明委托煮寡,生成代碼,缺點:耗性能犀呼,類型不安全
2幸撕、使用也簡單,LuaFunction上有個變參的Call函數(shù)外臂,可以傳任意類型坐儿,任意個數(shù)的參數(shù),返回值是object的數(shù)組专钉,對應于lua的多返回值挑童。