コガネブログ

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

【Unity】Unity で Lua を使用できるようにする「MoonSharp」紹介(無料)

はじめに

「MoonSharp」はUnityでLuaを使用できるようにするアセットです

公式サイト

http://www.moonsharp.org/

検証環境

  • MoonSharp:1.5.0.1
  • Unity:5.2.3p3
  • Xcode:6.2.3
  • Android:5.0.1
  • iOS:8.2

導入方法

  1. http://www.moonsharp.org/」を開く
  2. 「Zip file」を選択して「moonsharp_release_1.5.0.1.zip」をDLする
  3. 「moonsharp_release_1.5.0.1.zip」を展開する
  4. Unityプロジェクトに「Plugins」フォルダを用意する
  5. 「Plugins」フォルダに「interpreter/net35」フォルダを追加する

f:id:baba_s:20160327204143p:plain

実装方法

次のようなスクリプトを作成します

using MoonSharp.Interpreter;
using UnityEngine;

public class Example : MonoBehaviour
{
    private void OnGUI()
    {
        GUILayout.Label( MoonSharpFactorial().ToString() );
    }

    private double MoonSharpFactorial()
    {
        var script = @"    
            -- defines a factorial function
            function fact (n)
                if (n == 0) then
                    return 1
                else
                    return n*fact(n - 1)
                end
            end

            return fact(5)";

        var res = Script.RunString( script );
        return res.Number;
    }
}

そして、作成したスクリプトをゲームオブジェクトにアタッチしてから
ゲームを実行して、ゲーム画面に「120」と表示されることを確認します

f:id:baba_s:20160327204341p:plain

これで、Unityエディタ上でLuaが使用できることが確認できます
Android、iOSでも動作するようです

関連記事