xLua使用require改變路徑載入Lua指令碼

2022-07-14 14:57:17 字數 793 閱讀 3720

這個問題我糾結了好久,應該是屬於偏新手的乙個問題,在寫**的時候因為兩個lua指令碼的關聯問題,很多新人應該也會糾結於此。

xlua官方的例子載入指令碼是這樣的:

luaenv luaenvscriptctrl = new

luaenv();

luaenvscriptctrl.dostring(

@"require('luascriptlist')

");

此時如果lua指令碼不在resources路徑下,或者不在預設的目錄下,此時是載入不到對應的lua指令碼的。

官方例子**:signatureloadertest.cs,第11行開始。

解決方式如下:

luaenv luaenvscriptctrl = new

luaenv();

luaenv.customloader method =customloadermethod;

//新增自定義裝載機loader

luaenvscriptctrl.addloader(method);

luaenvscriptctrl.dostring(

@"require('luascriptlist')");

private

byte customloadermethod(ref

string

filename)

else

}

這下明白了,

filename 就是lua所在的位置,如果要適配手機,需要再加乙個適配手機的巨集。

xlua使用筆記

1 c 避免使用函式過載,否則xlua修復時會將所有的過載函式都指向lua中重寫的函式 導致成這樣的原因 xlua在將c 生成對應的lua函式時,c 過載的函式,被成成為乙個lua函式,如果修改這個過載,則認為將c 的函式入口指向lua函式。這是 lua 的單行注釋 這是 lua 的多行注釋 第二行...

XLua 的async to sync使用步驟

1.c 端寫乙個方法,最後乙個需要是callback,可以支援帶引數 public static void showconfirmbox string message,string title,actiononfinished null 2.用util.async to sync定義乙個lua的變數...

Lua 改變require函式做到非侵入式更改

遇到這麼個需求,做新版本但不可以改動以前版本的 這個時候就需要用非侵入式寫法。記錄一下從乙個大佬那裡學到的一種非侵入式寫法。下面這是舊版本 gamepanel class gamepanel local m gamepanel function m openpanel print openpanel...