読者です 読者をやめる 読者になる 読者になる

お米 is ライス

C#やらUnityやらを勉強していて、これはメモっといたほうがええやろ、ということを書くつもりです

MoonSharpの紹介 ~ UnityでLuaを使ったイベントスクリプトを書きたい

初めに(飛ばして)

Unityの開発では主にC#が使われている。
C#とはコンパイル言語であり、Rubyなどといったスクリプト言語のようにテキストファイルに直書きしたソースコードを順繰りに実行するということはできず、いったんソースコードコンパイルしてから実行しなければならない。
コンパイルするためにはメソッドはクラスの下に置かれなければならないし、複数メソッドを実装するときにはそれらはユニークな名前でなければならない(当たり前ではあるが)。
これらのカッチリとした仕様こそC#C#たるゆえん(ほんまか)なのだが、時々このカッチリさが煩わしくなってしまう時がある。
そして多分、この記事にたどり着いた人はその辺を憂慮してググってるのだと思うのだけど、この記事ではそんなC#でもスクリプト言語を使える「Lua」というものをUnityで使用する方法について紹介する。

Luaとは(飛ばして)

スクリプト言語であり、C言語などに組み込まれることを想定して作られている。
つまりどういうことかというと、C言語などからスクリプトを読み込んで実行するために使うのだ。
この言語はゲーム開発においてイベントスクリプトを実装するときによく用いられているようで、どっかのゲーム会社の社員募集要項みたいなページにも名前が出ていたと思う。
もともとはCおよびC++向けに作られたものっぽいが、C#でも使えるようにあちこちでライブラリが開発されている。
「Unity Lua」みたいな感じでググると「NLua」や「KeaLua」などいくつかについて紹介されているのだが、これらを使ってみたところどうにも具合が悪かった(そもそも導入がめんどくさかったり、Luaで一番使いたい機能であろうCoroutine.yieldが使えなかったり)。
それでもなんとかUnityに導入して使っていたのだが、最近再び検索してみると、「MoonSharp」というものがあることを知った。
こりゃええやんと思って早速ダウンロードして使ってみたらやっぱりええやんってなったのでそれを今から紹介したいと思う。

MoonSharp

導入方法

  • UnityのAssets直下に「Plugins」フォルダを作る。
  • MoonSharpの公式ホームページに行って、「Download」を押した先で最新版のZIPファイルをダウンロードする。
  • 解凍して、「\interpreter\net35\MoonSharp.Interpreter.dll」をPluginsフォルダに突っ込む。
  • 終了!!

なんて簡単なんだ……

使い方

もっと

そんな欲張りな奴は公式のチュートリアル見るなり適当にググるなりして自分で勉強しやがれ(丸投げ)
そのうち頑張って書くかもしれない……

まとめ

MoonSharpでLuaを使って快適なイベントスクリプティングライフを!!