slua,ulua,nlua,unilua這幾種unity3D的lua插件各有什麼優劣?
01-11
除開這幾種lua插件,是否還有其他的更好的lua插件值得推薦?
謝邀,
slua 是目前所有unity+lua方案里最快的,沒有反射,很少gc alloc,功能最強大的,沒有之一
**以下的benchmark是老版本, 新版更快**
直接支持代理(支持iOS), 支持4.6+ ui系統,支持il2cpp,支持yield, 代碼最簡潔, 更新最快,文檔最完善.
我們自己項目在用slua, 大概70%+的lua代碼,都是遊戲核心邏輯,包括ui, 而我們的遊戲是一個2.5D動作射擊遊戲,同屏超過30個怪,上百發彈幕做碰撞檢查,紅米可以輕鬆跑在30fps,說這些只是想說slua用於動作的遊戲作為主邏輯都不慢, 更不用說什麼回合/卡片/休閒遊戲了.
ulua/nlua都是基於反射的解決方案, 劣勢是速度慢,gc alloc頻繁,不直接支持代理, 還有一堆坑,需要修改,優勢是不會產生靜態代碼,減少了app的尺寸.
上面的方案都是基於lua的原生代碼做為插件被unity調用,
而unilua是c#的lua實現, 本身肯定沒有c代碼效率高,同時還需要考慮如果導出unity介面(可以反射,也可以靜態代碼),所以unilua不是一個完整的unity+lua方案,只是一個c#實現的lua虛擬機.
還有其他什麼值得推薦的插件? 沒有了,就用slua吧,妥妥的.
利益相關:slua作者,其實也沒啥利益,slua開源, http://www.slua.net/看過slua,代碼質量很高的。作者也願意開源,也比較活躍。slua是據我所知,幾個 lua 方案中,較早 提交到 github 上,大家一起維護的
slua 吧。 主要是簡潔,清晰。 不想ulua .... 唉。 太繁重了。
ulua nlua 都是 luainterface. luainterface 作者去搞nlua了。 ulua 分2個國外上asset store 的。還有國內的ulua - unity效率最高、最完善的熱更新方案!!
都很慢, 有限的電量都被浪費了
推薦閱讀: