XLua Lua访问C#

 LuaCallCSharp.cs

using UnityEngine;

using XLua;

 

public class LuaCallCSharp : MonoBehaviour {

 

    void Start () {

        LuaEnv luaEnv = new LuaEnv();  

        luaEnv.DoString("require 'LuaCallCSharp'");

        luaEnv.Dispose();

    }  

}

在Lua中new C#对象(创建游戏物体)

 LuaCallCSharp.lua.txt

--构造游戏物体,new对象

CS.UnityEngine.GameObject("new by lua")

 Lua访问C#静态属性和方法

 LuaCallCSharp.lua.txt

--访问静态属性

print(CS.UnityEngine.Time.deltaTime)

 

--设置值

CS.UnityEngine.Time.timeScale = 0.5

 

--查找游戏物体,并修改它的名字

local gameObject = CS.UnityEngine.GameObject

local camera = gameObject.Find("Main Camera")

camera.name = "update by lua"

 

--查找灯光

local light = gameObject.Find("Direction Light")

Lua访问C#成员属性和方法

LuaCallCSharp.lua.txt

--调用成员方法的时候,使用冒号

local cameraCom= camera:GetComponent("Camera")

 

--或者用点

local cameraCom= camera.GetComponent(camera,"Camera")

 

--删除对象

gameObject.Destroy(cameraCom)

你可能感兴趣的:(XLua)