Unity付属のMonodevelop以外でコーディングをする

##Unity付属のMonoDevelop以外のエディターを使おう
個人的にはUnityインストール時に付属するBuiltin-MonoDevelopは使いづらいと思っている。
単純に日本語が標準で使えないのと、立ち上げ直すたびに設定した項目が初期化されていたりなど、パッと使いやすいものの気にし始めたら気になる所が多く、ままならないので思い切って他のエディターを使うことに決めた。

##候補となったエディター
**色々と試用した環境**
- OS X El Capitan
- Unity5.2.2f1
- Mono4.2.1
- 性別:男
- 好きな食べ物:ハヤシライス(地球上で一番美味い食べ物)

**XamarinStudio**
Unityを使い始めて（コードを書き始めて）まず初めに思うのが「日本語でコメント書きたい」だと思う。その上で「ググったらXamalinが真っ先に出てきた」という経験のある人は多いと思う。
エディターの見た目などはMonoDevelopと遜色なく、純粋に日本語を書きたいという要件を満たすならこれが一番いいと思う。余計な事は考えなくても良いので、手軽に使えるのが良い。
ただし、冒頭で述べたMonoDevelopの特徴と同様、設定が吹き飛んだりするので出来るなら後述のエディターから選ぶのがおすすめ。これがバグであれば、修正されたりされていたりすると思うので一概には言えないが、長く付き合っていくならどちらにしろ自由度や拡張性に難があるので、こだわりたい人はやはり後述のエディターがよい。

**VisualStudioCode**
UIがとてもかっこよい。VisualStudioの様な、シンプルで無駄が無く見える見た目は傍から見ても「こいつ出来そう」と思わせること間違いなし。
だが、使ってみた感じ、試した中ではMonoDev、Xamarinに次いで動作が重い。
リリース当初に試してみた時は、今とは比べ物にならないほど使いづらい印象があってすぐにアンインストールしたが、今回再インストールしてみた感じ、この期間でこれほど使いやすくなったなら今後の進化にも期待できそうという感じ。
比較的初心者〜中級者にも優しく、エディターのレイアウトの設定などはjsonで管理されているので編集がとてもしやすい。
基本的にはデフォルトのjsonファイルがあり、ユーザーが自分で書いた設定項目があればそっちを優先して読み込む、という形らしい。
<img width="1139" alt="vsc_usersetting.png" src="https://qiita-image-store.s3.amazonaws.com/0/67909/e0d2619b-78de-5d13-b54d-9837b17a7bf5.png">

**AtomEditer**
言わずと知れた神エディター。といいつつ自分も使いこなせていない。逆に言えばやれることが多く、パッケージという形でプラグインが提供されており、かつエディター内でインストールからアンインストール、パッケージの有効/無効の設定も可能なので手軽にエディターの拡張が可能。
自分はこれに落ち着いた。
C#やC++と同時にpythonやjsなどのスクリプトも打つので、色んな環境が一手に整うAtomがとてもよい。
しかし、当たり前だがパッケージを入れれば入れるほどエディター自体が重くなるしパッケージの管理も面倒くさくなるのでほどほどに。

**SublimeText**
これはおまけ。プログラミングに関わらず様々な用途に使うが、あえてUnity開発にこれを持ち出す必要性もそんなに無いと思う。使い慣れている人はこれも選択肢に上がるんじゃないか、という印象。


##エディターの導入について
以降は、以上のエディターをUnityと合わせて使う場合の設定。

**デフォで使用するエディターの変更の仕方**
基本的に、Unityでエディターを変更したいときはメニューバーのUnity->Preferencesとポチポチし、ExternalToolsタブのExternalScriptEditerを設定すること。
<img width="821" alt="unity_preferences_externalediter.png" src="https://qiita-image-store.s3.amazonaws.com/0/67909/5df7ba5f-ae64-2635-1350-8e9c16d93cbd.png">
別にUnityが指定したエディターである必要は無いので、自分の普段使っているエディターを選択すると良い。

**MonoFrameworkのインストール**
MonoFrameworkは.NETFrameworkのほにゃらららなので要するにこれがないとC#が使えないということ。C#を使う事自体はMonoでなくとも良いかもしれないが、AtomにしろVSCにしろMonoを利用してC#を実行しているのでつまりそういうこと。
以下Mono公式サイトのダウンロードページ。
http://www.mono-project.com/download/

<img width="958" alt="mono_hp.png" src="https://qiita-image-store.s3.amazonaws.com/0/67909/253b4900-02a4-af2f-38f5-9804fee7c1ca.png">
自分はOSXのEl Capitan環境なのでスクショの様になる。

余談ですが、自分は一時期Xamarinを使っていたのですが突如としてビルドできなくなり、Xamarinが壊れたのかと思ったらMonoFrameworkが壊れていたみたいです。どうも、MonoDevelopと行ったり来たりしたり、色んなバージョンのUnityを入れていたのが原因みたいです。
Atomで開いた時に
>/Users/~~~/.atom/packages/omnisharp-atom/node_modules/omnisharp-client/roslyn/packages/dnx-mono.1.0.0-beta4/bin/dnx: line 14: exec: mono: not found

とエラーを出されてげんなりしていたのですが、MonoFrameworkの最新版をインストールしたら直りました。同じ悩みを持つ人がいたらお試しください。

ちなみに、この時点でコマンドプロンプトなりターミナルなりで「mono --version」と実行して正常にバージョン情報が出ない場合、かなり怪しい。

以降は各エディター毎に行なうべき設定を記述していきます。

**XamarinStudio**
特に無し。なにも考えずに公式サイト行ってインストールすべし。Unity側でのエディター設定を忘れずに。

**VisualStudioCode**
これも特に無いはず。自分はインストールしてすぐに利用できたのですが、もしかするとMonoのパス設定が必要だったりする場合も無きにしも非ず。

**AtomEditer**
まずはC#をビルドするためのパッケージをインストールすること。
メニューバーのAtom->Preferencesを叩くとsettingファイルが開くので、installタブからSearchPackageの検索ボックスに「omnisharp-atom」と入力し検索する。
すると同名のパッケージがヒットすると思うのでinstallボタンをポチッと。

これ以外の設定は特に必要ないと思う。少なくとも自分は必要なかった。という経験談に基づく端折り。

**SublimeText**
（ドヤ顔で書いたものの、使ってないし設定の仕方すら知らないとは言えない・・・！）

##まとめ
以上が自分が試した4つのエディターですが、総合的にはAtom、次点でVSCかなと。
結局のところ、色んなエディターを試しつつMonoで実行できるようになったよ、というのを書きたかっただけなので、これを見た人は自分の使い慣れたものを使うと良いと思います。
あと、Monoのサイトのスクショ背景白いから見づらいですね。クソワロタ

終わり




###追記:2015/10.30
Atomを使う場合、Unity側でファイルの移動やフォルダ整理などを行い、ファイルの階層や位置を変えると参照がおかしくなりエラーになる問題に遭遇した。
パッケージ選びで解決できるのかもしれないが、手っ取り早く解決するためにVSCを使うことにした。元々そんなに使い込んでなかったから気になってたしね。
そこで、まだまだにわかだけど、VisualStudioCodeを使う場合にやったほうがいいことを見つけたので追記。

VSCのPreferences->UserSettingを叩き、表示されたユーザー用のJsonに
```"files.exclude": {
"**/.git": true,
"**/.DS_Store": true,
"**/*.cs.meta": true,
"**/*.meta": true		
}```
を追加すると良い。
簡単に言うと、エディター上のフォルダビューなどから指定のファイルを見えなくするというもの。
デフォルトでは.gitと.DS_Storeしか無視されないが、C#のメタファイル、フォルダーのメタファイルもユーザーがいじるものではないので一緒に無視させてしまおう。
これ以外にもかなり有用な設定項目は多いので、UserSettingは暇な時に眺めておくと良いと思う。

###追記:2016/02.05

先日、Unityを5.3.2へアップデートした所、MonoDevelopも一緒にバージョンアップしました。
で、その中でも特に嬉しいのが、MonoDevelopで日本語が打てるようになりました！
MonoDevelopのバージョンは5.9.6です。
ということで、機能面を抜きにしたらわざわざ他のエディターを使わずとも標準環境で十分そうですね。
今後は純粋に機能の良し悪し向き不向きでエディターを決めることができるようになるでしょう。