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#的代码:
在CS中编写加载Lua的代码,运行后在层级面板中新建了一个空的游戏物体,名字是mygo
二:访问C#中的静态属性和静态方法
——访问C#中的静态属性
例如Time类中的deltaTime属性就是一个静态属性(Time类中都是静态属性)
在Lua中编写调用C#的代码:
在CS中编写加载Lua的代码,运行后输出LUA:1
——访问C#中的静态方法
例如Object类中的Destroy方法就是一个静态方法
在Lua中编写调用C#的代码:
在CS中编写加载Lua的代码,运行后层级面板中的Main Camera被销毁
小技巧:对于经常访问的类,可以用一个局部变量引用后再访问,既可以减少敲代码的时间也可以提升性能
例如Find和Destroy方法需要经常使用,我们可以用一个局部变量去引用