Lua访问C#都需要用CS去访问到类中的方法,字段,属性

如果在Lua文件中使用print则在Untiy输出结果带有LUA:,如果使用CS去访问到Untiy中的输出方法,则不带有Lua:,因为前者是通过Lua中的输出语句进行的输出,后者是通过Unity中的输出语句进行的输出

print(CS.UnityEngine.Time.timeScale)			    	        --LUA:1
CS.UnityEngine.Debug.Log(CS.UnityEngine.Time.timeScale)		        --1
CS.UnityEngine.MonoBehaviour.print(CS.UnityEngine.Time.timeScale)       --1

一:new C#对象

在C#中可以这样new一个对象:GameObject go = new GameObject(),但是在Lua中没有new关键字
在Lua中编写调用C#的代码:
xLua(七)——Lua访问C#(一)_热更新
在CS中编写加载Lua的代码,运行后在层级面板中新建了一个空的游戏物体,名字是mygo


二:访问C#中的静态属性和静态方法

——访问C#中的静态属性
例如Time类中的deltaTime属性就是一个静态属性(Time类中都是静态属性)
xLua(七)——Lua访问C#(一)_热更新_02
在Lua中编写调用C#的代码:
xLua(七)——Lua访问C#(一)_热更新_03
在CS中编写加载Lua的代码,运行后输出LUA:1

 

 


——访问C#中的静态方法
例如Object类中的Destroy方法就是一个静态方法
xLua(七)——Lua访问C#(一)_C#_04
在Lua中编写调用C#的代码:
xLua(七)——Lua访问C#(一)_C#_05
在CS中编写加载Lua的代码,运行后层级面板中的Main Camera被销毁


小技巧:对于经常访问的类,可以用一个局部变量引用后再访问,既可以减少敲代码的时间也可以提升性能
例如Find和Destroy方法需要经常使用,我们可以用一个局部变量去引用

xLua(七)——Lua访问C#(一)_热更新_06