xlua腳本 myxlua.lua.txt
print("my xlua file");
num1=10
str1='this is lua string'
tt={
name='zyx',
ago=20,
"red",
"blue",
"yellow",
123,
mm=function()
print('this mm lua string')
end
}
function tt.fun1(self)
print(self.name)
end
function tt:fun2(num1,num2)
print(num1+num2)
end
c# 腳本調(diào)用語言
using UnityEngine;
using XLua;
public class xcluademo1 : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
//最簡單的lua
globexlua.luaenv.DoString("print('hellow lua')");
//調(diào)用lua文件 myxlua.lua.txt
globexlua.luaenv.DoString("require 'myxlua'");
//利用interface 接口對(duì)接lua,table中的數(shù)據(jù)以及方法 需要標(biāo)記 [CSharpCallLua]
person p1 = globexlua.luaenv.Global.Get<person>("tt");
p1.fun1();
p1.fun2(12,13);
p1.name = "xlua"; //可更改虛擬機(jī)中的lua程序定義的值
globexlua.luaenv.DoString("print(tt.name)");
//利用類映射lua中定義的屬性
student s = globexlua.luaenv.Global.Get<student>("tt");
print(s.name);
print(s.ago);
s.ago = 10; //不可更改虛擬機(jī)中的lua程序定義的值
globexlua.luaenv.DoString("print(tt.ago)");
}
}
[CSharpCallLua]
public interface person
{
string name { set; get; }
string age { set; get; }
void mm();
void fun1();
void fun2(int x,int y);
}
class student
{
public string name;
public int ago;
}