--Listlocal a =TestListAndDic()for i =0, a.lst.Count -1doprint(a.lst[i])endlocal list = System.Collections.Generic.List_string()
list:Add("zzs")print(list[0])local list2 = System.Collections.Generic.List_int()
list2:Add(999)print(list2[0])--Dic--XLua 中遍历Dictionary可以使用Pairs,但是ToLua中只能使用迭代器local iter = a.dic:GetEnumerator()while iter:MoveNext()dolocal v = iter.Current
print(v.Key.."_"..v.Value)endlocal dic1 = System.Collections.Generic.Dictionary_int_string()
dic1:Add(1,"zzs")print(dic1[1])--ToLua中当使用string为Key时不能通过[]来直接访问对应的Valuelocal dic2 = System.Collections.Generic.Dictionary_string_int()
dic2:Add("zzs",1)local b,val = dic2:TryGetValue("zzs",nil)print(val)
二.ToLua调用C#中的拓展方法
拓展方法需要在CustomSettings进行添加绑定
publicstaticclassPersonExt{publicstaticvoidPlay(thisPerson person){
Debug.Log(person.name+"玩");}}publicclassPerson{publicstring name ="zzs";publicvoidEat(){
Debug.Log(name+"吃饭");}}
local p =Person()
p:Eat()
p:Play()
三.ToLua调用C# ref,out参数的函数
和XLua非常相似
Out参数的时候不能直接省略不写
publicclassLesson06{publicintRefFunc(int a,refint b,refint c,int d){
b = a + d;
c = a - d;return100;}publicintOutFunc(int a,outint b,outint c,int d){
b = a + d;
c = a - d;return200;}publicintRefAndOutFunc(int a,refint b,outint c,int d){
b = a + d;
c = a - d;return300;}}
Unity ToLua 之 Lua调用C#(二)一.ToLua调用C#中的List和Dictionary注意List和dictionary对应的泛型需要先填写到CustomSetting中,然后生成XLua 中遍历Dictionary可以使用Pairs,但是ToLua中只能使用迭代器ToLua中当使用string为Key时不能通过[]来直接访问对应的Valuepublic class TestListAndDic{ public List<string> lst = ne