Sublime Text2でUnity3Dのコードを編集する



## Sublime Text2のインストール
以下のサイトからSublime Text2をダウンロードしてインストールしましょう。
http://www.sublimetext.com/2

## Package Managerのインストール
Package Managerというのは、Eclipseで言うとUpdate Site、emacsで言うとpackage.elみたいなものです。

1 メニューの View->Show Console をクリックしてconsole viewを出して以下のコード([公式サイト](http://wbond.net/sublime_packages/package_control))をコピペして実行します。

```
import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ',' ')).read()); print 'Please restart Sublime Text to finish installation'
```

* 正常に完了すると、コンソールに"Please restart Sublime Text to finish installation"と出るはずなのでSublime Text2を再起動しましょう

*  メニューに Sublime Text2 > Preferences > Package SettingsにPackage Controlが追加されているはずです。

参考
http://wbond.net/sublime_packages/package_control

## Unity関連パッケージのインストール(シンタックスハイライト)
シンタックスハイライトさせる為のパッケージをインストールします。

1. Package Controlのviewを表示させましょう(Win: Ctrl+Shift+P, Mac: Command+Shift+P)

2. installとタイプすると"Package Controll: Install Package"が出てくるのでEnterで実行します

3. 再びテキストボックスが表示されて、インストールするパッケージの候補が出てくるのでUnityとタイプしましょう。

4. 一番上のUnity3Dを選択します。これはC#とJavaScriptをハイライトする為のパッケージです。

!["Unity01"](http://dl.dropbox.com/u/289852/qiita/unity01.png)

* シンタックスハイライトの種類を以下のように選択できます

View > Syntax > Unity 3D > Unity C#(Unity JavaScript)

## エディタ上からドキュメントにジャンプする
Unity3D Script Reference Searchを使うと、コード上から簡単にUnityのドキュメントにジャンプできます。
これは先程のシンタックスハイライトのパッケージ同様にPackage Controlからインストールしてください。

* "Search Unity Reference"は選択/カーソル位置の単語で検索し、"Unity Class Function Lookup"はクラスのドキュメントへ直接ジャンプします

* EditorクラスとかButtonクラスなどクラスを直接参照したい場合は"Unity Class Function Lookup"を使い、Update()やOnInspectorGUI()など関数の挙動を調べたい場合は"Search Unity Reference"を使うと良さそうです

!["Unity2"](http://dl.dropbox.com/u/289852/qiita/unity02.png)

## デバッグコンソールからSublime Text2にジャンプする
せっかくSublime Text2でシンタックスハイライトできるようになっても、Unityから直接飛べないと不便です。

1. Unity > PreferencesからUnity Preferencesダイアログを出して、External Script EditorをSublime Text2に変更しましょう。

2. これでデバッグコンソールをダブルクリックしたときにSublime Text2が開きます。

!["Unity05"](http://dl.dropbox.com/u/289852/qiita/unity05.png)

## スニペットで自動的にコードを入力する
Unity Snippets and Completesを入れると、Unityで使うコードを自動的に入力できます。

* これはSublime Textに[Snippets](http://sublimetext.info/docs/en/extensibility/snippets.html)という機能があって、Snippets Fileに沿ったコードを自動的に入力してくれます。

!["Unity03"](http://dl.dropbox.com/u/289852/qiita/unity03.png)

* Tabを押すと次の引数にフォーカスを移動できます

!["Unity04"](http://dl.dropbox.com/u/289852/qiita/unity04.png)

* このパッケージでは幾つかのUnity用クラスのSnippets Fileを提供してるようです。

* 今週中に僕もSnippets File作って[github](https://github.com/mikamikuh)においときます。

## 静的に解析して自動的に補完する
静的言語を使っているのに自動的に補完できないと不便で仕方ないです。
特に良く分からないクラスを使うときは自動補完でメソッド名から予測してコードを書くので、これが出来ないと作業が進みません。
CompleteSharpというパッケージをインストールしてそれを出来るようにします。

1. 以下のSublime Text2設定ファイルを開きます

> /Users/[username]/Library/Application Support/Sublime Text 2/Packages/CompleteSharp/CompleteSharp.sublime-settings

* 19行目の"completesharp_assemblies"を以下のように修正します

```json:CompleteSharp.sublime-settings
"completesharp_assemblies": [
"/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll",
"/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEditor.dll",
"/Applications/Unity/Unity.app/Contents/Frameworks/Managed/nunit.framework.dll",
]
```

そうすると、こんな感じでクラスの構造を解析して自動補完してくれます。

!["Unity06"](http://dl.dropbox.com/u/289852/qiita/unity06.png)

ただ、この方法だけでは自分で作成したクラスについては補完してくれません。以下のURLを探せば何か見つかるかも。

http://forum.unity3d.com/threads/128352-Using-Unity-with-Sublime-Text-2-(How-to-get-everything-set-up)/page2