using xlua;
luaenv luaenv =
newluaenv()
;//開啟lua虛擬機器,最好乙個程式只有乙個虛擬機器(占用效能)
luaenv.
dostring
("print('hello world!')");
//執行lua指令碼,輸出帶lua:字首
luaenv.
dispose()
;//關閉虛擬機器
另一種輸出(unity輸出),不帶lua字首
using xlua;
luaenv luaenv =
newluaenv()
; luaenv.
dostring
("cs.unityengine.debug.log('hello world!')");
//輸出:hello world!
luaenv.
dispose()
;
using xlua;
textasset ta = resources.
load
<
textasset
>
("helloworld.lua"
)luaenv luaenv =
newluaenv()
; luaenv.
dostring
(ta.text)
; luaenv.
dispose()
;
using xlua;
luaenv luaenv =
newluaenv()
; luaenv.
dostring
("require 'helloworld'");
luaenv.
dispose()
;
自定義的loader相當於乙個委託,lua虛擬機器呼叫require找檔案時,預設先執行你自定義的loader,若返回乙個byte陣列,則執行byte陣列中lua指令碼。若返回空,在去調其他的loader委託函式,最終都沒找到,會呼叫預設的xlua的loader,直接讀取檔案。
注意:自定義loader引數為字串,返回值為byte陣列
using xlua;
luaenv luaenv =
newluaenv()
; luaenv.
addloader
(myloader)
;luaenv.
dostring
("require 'helloworld'");
輸出:123
luaenv.
dispose()
;private
byte
myloader
(ref
string filepath)
例:用自定義loader,實現讀取streamingassets資料夾下lua指令碼
using xlua;
luaenv luaenv =
newluaenv()
; luaenv.
addloader
(myloader)
;luaenv.
dostring
("require 'helloworld'");
//streamingassets下helloworld.lua.txt
luaenv.
dispose()
;private
byte
myloader
(ref
string filepath)
XLua熱更新框架學習(一)
1.建立新的unity專案,建立好資源管理資料夾 2.將xlua中的plugins和xlua資料夾拷貝到專案中 a.呼叫內部lua 1.引入xlua命名空間,在xlua中執行lua 的虛擬機器就是luaenv 2.乙個luaenv例項就是乙個lua虛擬機器,建議全域性唯一 luaenv luaenv...
Xlua 學習記錄(一)Xlua 案例學習
有空看了下lua,研究下xlua。筆記如下 void start 1 dostring引數為string,可輸入任意合法的lua 本示例在lua裡呼叫c 的unityengine.debug.log列印了個日誌。2 乙個luaenv例項對應lua虛擬機器,出於開銷的考慮,建議全域性唯一。考慮全域性唯...
XLua框架學習(三)C 訪問Lua中的全域性函式
function add print add endusing xlua luaenv luaenv newluaenv luaenv.dostring require csharpcalllua 需要先將lua指令碼載入進來 action add1 luaenv.global.get action...