Lua文件中要调用C#的类,需要再前面加上CS.
例如要使用DateTime,就需要通过CS.加上DateTime类的命名空间System
就可以使用DateTime下面的函数和属性
CS.System.DateTime
print(CS.System.DateTime.Now)
如果要使用GameObject也是一样的,需要加上CS.和GameObject的命名空间UnityEngine
CS.UnityEngine.GameObject
camera = CS.UnityEngine.GameObject.Find("Main Camera")
自定义的C#类,使用方式也是一样的
using UnityEngine;
public class Test : MonoBehaviour
{
public static void TestAction()
{
print(111);
}
}
Test类,我们没有加入命名空间,那么使用的时候,只用**CS.**就可以了
local test = CS.Test
test.TestAction()
如何再lua中,调用C# new GameObject呢
lua中是没有new 关键字的,所以我们只需要这样写就可以了
CS.UnityEngine.GameObject()
如果是重载的构造参数
CS.UnityEngine.GameObject("hello world")
Tips: 经常访问的类,可以再lua中用局部变量先引用,可以减少敲代码的时间,也能提高性能
如何访问对象身上的组件呢
注意: 在使用对象身上的成员方法要用冒号 “:”,使用冒号会自动将当前对象作为第一个参数传递过去,使用点"."的话,需要手动将当前对象设置第一个参数
--Lua
local GameObject= CS.UnityEngine.GameObject
camera = GameObject.Find("Main Camera")
camera.name="update by lua"--修改Camera的名字
--通过对象调用它的成员方法使用:
cameraCom=camera:GetComponent("Camera")--获得Camera对象上的Camera组件
--cameraCom.enabled=false
--如果要销毁
GameObject.Destroy(camera)