XLua基础

一、Lua文件加载

XLua基础

1).Resources加载xluaTest文件

XLua基础

2).通过loader加载

XLua基础

 3).自定义Loader(相当于Resources加载和loader加载结合)

   先自定义Loader,再加载

XLua基础

XLua基础

二、C#访问Lua

XLua基础

1).获取一个全局基本数据类型

XLua基础

2).访问一个全局的table

XLua基础

 ①映射到普通class或struct

XLua基础

②映射到一个interface

 先建立一个接口(接口需引用"CSharpCallLua")(相当于一个类),再映射

XLua基础

XLua基础

XLua基础

 ③映射到Dictionary<>

XLua基础

 ④映射到List<>

XLua基础

 ⑤映射到LuaTable类

XLua基础

3).访问一个全局的function

①C#访问lua方法  无参

XLua基础

②C#访问lua方法  有参

XLua基础Lua中AddFunc方法

先定义参数(引用"CSharpCallLua")(相当于一个类),再执行方法操作

XLua基础

XLua基础

输出结果:(在unity中)

Lua:15;

15;

三、C#调用Lua

XLua基础Lua中AddFunc方法

C#调用lua方法 使用LuaFunction

XLua基础

输出结果为:(在unity中)

24;

-22

四、Lua调用C#

1).new C#对象

①   普通

        C#:           var newGameObj = new UnityEngine.GameObject();

Lua:  local newGameObj = CS.UnityEngine.GameObject()

含参构造

Lua:        local newGameObj2 = CS.UnityEngine.GameObject('helloworld')

2).访问C#中静态的属性  (调用用".")

Lua:        print(CS.UnityEngine.Time.deltaTime)

3).访问C#中静态的方法  (调用用".")

Lua:        local cameraGo = CS.UnityEngine.GameObject.Find('Main Camera')

4).访问C#中的成员方法  (调用用":")

Lua:       local cameraGo = CS.UnityEngine.GameObject.Find('Main Camera')

cameraGo:SetActive(false)

5).访问C#中的成员属性  (调用用".")

Lua:      local cameraCom = cameraGo:GetComponent("BoxCollider")

CS.UnityEngine.GameObject.Destroy(cameraCom)

上一篇:微信iOS WKWebview 网页开发适配指南


下一篇:java web项目导入问题