1.執行字串
xlua.luaenv luaenv = new xlua.luaenv();
luaenv.dostring("cs.unityengine.debug.log('hello world')");
luaenv.dispose();
1、dostring引數為string,可輸入任意合法的lua**,本示例在lua裡呼叫c#的unityengine.debug.log列印了個日誌。
2、乙個luaenv例項對應lua虛擬機器(lua環境),出於開銷的考慮,建議全域性唯一。
2.載入lua檔案
1.拖拽lua文字
public textasset luascript;
public luaenv luaenv = new luaenv();
private luatable scriptenv;
void awake()
2.用lua的require函式即可
luaenv.dostring("require 'load'")
require實際上是調乙個個的loader去載入,有乙個成功就不再往下嘗試,全失敗則報檔案找不到。 目前xlua除了原生的loader外,還新增了從resource載入的loader,需要注意的是因為resource只支援有限的字尾,放resources下的lua檔案得加上txt字尾(見附帶的例子)。
建議的載入lua指令碼方式是:整個程式就乙個dostring("require 'main'"),然後在main.lua載入其它指令碼(類似lua指令碼的命令列執行:lua main.lua)
3.自定義loader
在xlua加自定義loader是很簡單的,只涉及到乙個介面:
public delegate byte customloader(ref string filepath);
public void luaenv.addloader(customloader loader)
luaenv.addloader(loader);
luaenv.dostring("require 'load'", "custumloader", scriptenv);
public byte loader(ref string filename)
這是乙個簡單的案例 Xlua 學習記錄(一)Xlua 案例學習
有空看了下lua,研究下xlua。筆記如下 void start 1 dostring引數為string,可輸入任意合法的lua 本示例在lua裡呼叫c 的unityengine.debug.log列印了個日誌。2 乙個luaenv例項對應lua虛擬機器,出於開銷的考慮,建議全域性唯一。考慮全域性唯...
Xlua基礎 二 C 呼叫Lua
1.呼叫lua的乙個全域性的變數 env new luaenv env.dostring require helloworld env.global.get str 很簡單,泛型型別裡寫變數的型別,引數傳變數名。2.訪問全域性table 1 將table對映到class 將lua table中的鍵名...
Xlua基礎 三 Lua呼叫C
1.new c 物件 local newgameobj cs.unityengine.gameobject local newgameobj2 cs.unityengine.gameobject helloworld print newgameobj,newgameobj2 2.訪問靜態屬性,方法 ...