原贴:http://blog.csdn.net/sinat_20559947/article/details/48065719
luaframework中只有out的实例:TestOut.unity
直接上例子:
C#代码:
using System;using LuaInterface;namespace myLua{ class MainClass { public string name = "Ocean"; public void CSharpMethod(string name ,out int count) { Console.WriteLine ("这是C#里的一个方法"); count = name.Length; } public void TestRef(string name,ref int count) { Console.WriteLine (name); Console.WriteLine (count); count = name.Length; } public static void Main (string[] args) { // 创建一个Lua解释器 Lua lua = new Lua(); // 在C#中使用lua的语法调用lua脚本 lua.DoFile("luaScript.lua"); } }}
Lua代码:
myClass = MainClass() print(myClass.name) returnValue,strLength = myClass:CSharpMethod("Ocean") --myClass:CSharpMethod("Ocean",nil) --一般情况下最好是这么写,不要省略那个参数 --这个地方一般是要加上第二个参数,传递nil,因为在通过射线取hit的方法中,获取的out的值并不是在参数的末尾,如果不传一个nil,好像是会报错的 print(returnValue, strLength) --returnValue是方法的返回值,如果没有返回值就返回nil returnValue,count = myClass:TestRef("Ocean",5) --这里第二个参数是ref的取值,必需要传递一个参数