コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Unity で Lua を使用できるようにする「slua」紹介

はじめに

http://www.slua.net/

「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」フォルダ内のアセットを追加する
 
f:id:baba_s:20160328143954p:plain
 
6. 「CustomExport.cs」を開く
7. OnGetNoUseList関数のリストに下記の2行を追加する

"WSA", 
"EventProvider", 

8. 「Not found lua interface for Unity, generate it now?」と表示されたら
「Generate」を選択する
 
f:id:baba_s:20160328144003p:plain

確認方法

「Assets/Slua/example」内のシーンを起動する

Lua スクリプトサンプル

上記のmain.luaはsluaのサンプルとして公開されているLuaスクリプトです
LuaでGameObjectやVector3などのUnityのAPIを操作することが可能です

雑感

LuaからUnityのAPIを使用できることと、
iOSでも動作することがとても魅力的なので
引き続き調査していこうと思います

参考サイト様

関連記事