はじめに
「slua」はUnityでLuaを使用できるようにするアセットです
前回紹介した「MoonSharp」は
LuaからUnityのAPIを呼び出すことができなかったですが
こちらの「slua」は呼び出すことができるようです
特徴(公式サイトから引用)
- static code generating, no reflection, no extra gc alloc, very fast
- lua console for debug
- full support iOS/iOS64, support il2cpp
- above 90% UnityEngine interface exported ( remove flash, platform dependented interface )
- 100% UnityEngine.UI interface ( require Unity4.6+ )
- support support standalone in mono without Unity3D
- support UnityEvent/UnityAction for event callback via lua function
- support delegate via lua function (include iOS)
- support yield call
- support custom class exported
- export enum as integer
- return array as lua table
- using raw luajit, can be replaced with lua5.3/lua5.1, link with slua.c, if you switch to lua5.3, add LUA_5_3 macro in build setting.
- remote debug
導入方法
1. 「http://www.slua.net/download/」を開く
2. 「here」を選択する
3. 「Source code (zip)」を選択して「slua-1.1.1.zip」をDLする
4. 「slua-1.1.1.zip」を展開する
5. Unityプロジェクトに「Assets」フォルダ内のアセットを追加する
6. 「CustomExport.cs」を開く
7. OnGetNoUseList
関数のリストに下記の2行を追加する
"WSA", "EventProvider",
8. 「Not found lua interface for Unity, generate it now?」と表示されたら
「Generate」を選択する
確認方法
「Assets/Slua/example」内のシーンを起動する
Lua スクリプトサンプル
上記のmain.luaはsluaのサンプルとして公開されているLuaスクリプトです
LuaでGameObjectやVector3などのUnityのAPIを操作することが可能です
雑感
LuaからUnityのAPIを使用できることと、
iOSでも動作することがとても魅力的なので
引き続き調査していこうと思います