

Lua中new C#對象
-
1.C#腳本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
public class _005_LuaCallCSharp : MonoBehaviour {
private LuaEnv env;
void Start ()
{
env = new LuaEnv();
env.DoString("require 'LuaCallCSharp'");
}
private void Update()
{
if(env!=null)
{
env.Tick();
}
}
private void OnDestroy()
{
env.Dispose();
}
}
-
2、Lua腳本
--new C#對象
local newGameObj = CS.UnityEngine.GameObject()
--創(chuàng)建名稱為helloworld的物體
local newGameObj2 = CS.UnityEngine.GameObject('helloworld')
--創(chuàng)建一個Sphere(球體)
local newSphere=CS.UnityEngine.GameObject.CreatePrimitive(0)
print(newGameObj)
print(newGameObj2)
print(newSphere)
輸出結(jié)果:

img.jpg
注意:
1、在XLua中調(diào)用所有C#相關(guān)的都放到CS下,包括構(gòu)造函數(shù),靜態(tài)成員屬性、方法。
2、Lua里頭沒有new關(guān)鍵字
如果有多個構(gòu)造函數(shù)呢?xlua支持重載,比如你要調(diào)用GameObject的帶一個string參數(shù)的構(gòu)造函數(shù),這么寫:
local newGameObj2 = CS.UnityEngine.GameObject('helloworld')
3、相關(guān)的方法名與類名,空間名不能出現(xiàn)錯誤。