uLua使用總結(二)

2021-08-13 02:52:14 字數 1401 閱讀 7535

ulua使用總結

1. luastate類:

對luainte***ce中的

lua進行了封裝。

相當於於lua的解析器

和lua使用一樣,在使用之前需要建立乙個物件。

從而通過這個lua物件去執行

lua的**。

如下:

luastate呼叫

lua是使用的反射技術

,它是把要在

lua中使用的

c#類通過反射做到

可以在lua中呼叫。

所以在lua中使用

c#的時候需要做一些匯入程式集和匯入類的操作。

如下:

2. luascriptmgr類:

是對luastate的再一次封裝。

它對一些東西進行了處理,使用luascriptmgr處理

lua會更加的方便。

使用之前也需要建立乙個該物件,並且呼叫lua.start()做一些初始化的操作。

包含三個重要函式:

dofile:載入

lua檔案到

lua虛擬機器。

dostring:載入

lua**進入

lua虛擬機器。

callluafunction:呼叫

lua的函式。

luascriptmgr呼叫

lua是使用的非反射技術,它把反射給去掉了,

使用非反射呼叫lua執行會更快。

怎麼去掉的呢?

是通過wrap包裝檔案把在

lua中要使用的

c#類預先註冊到

lua虛擬機器中,

然後通過這種方式也可以在lua中進行對

c#的方法的一些呼叫。

下面是乙個使用luascriptmgr例子:

3. 用c#使用

string

代表lua

指令碼的話用

@符號開頭,避免字元出錯

4. luafunction func= getluafuction(「lua中的方法名」) 得到

lua中的方法物件

5. func.call(傳值

) 呼叫該方法,並且可以往裡面傳值

6. 因為lua中是支援多返回值的,所以我們可以定義乙個

object

陣列用來接收該方法的返回值。比如:

object objs=func.call(123)

ULua使用方法

剛接觸ulua,使用方法在此備份 如果luabundlemodel置為false,則lua 會時時更新。此外,修改c 一定不要忘了執行選單lua clear wrap files,然後重新生成gen wrap binder using unityengine using system.collect...

C Light 和 uLua的對比第二彈

上次的對比大家還有印象否,c light和ulua對比各有勝負 今天我們加入乙個去反射優化,這是ulua沒辦法實現的優化,我們也就只能不要臉的勝之不武了 以原生執行同一測試時間為x1,數字越小的越快 專案ulua c light c light 去反射優化 效能測試一 x4.5 x4.5 x2.19...

ulua 在lua中使用Update定時器

首先介紹一下我現在在做的專案,使用unity引擎,luaframework框架,用lua指令碼實現ui上的邏輯。我負責專案中的所有ui,在開發的過程中遇到很多定時器的需求,之前偷懶沒去研究應該怎麼做,就在c 指令碼的update方法中呼叫lua指令碼的某個函式來達到目的。後來專案中需要加上心跳包這個...