コガネブログ

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

【Unity】UnityでLuaを使用できるようにする「MoonSharp」を触ってみる

MoonSharp

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

検証環境

  • 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が使用できることが確認できます
AndroidiOSでも動作するようです

類似記事