VisualStudio
Unity

【小ネタ】Unity2018に向けてMonoDevelopからVisual Studio for Macに引越した

はじめに

2018/01/05 Unity blogにて以下発表がありました。

Discontinuing support for MonoDevelop-Unity starting in Unity 2018.1
https://blogs.unity3d.com/jp/2018/01/05/discontinuing-support-for-monodevelop-unity-starting-in-unity-2018-1/

日本語訳(google翻訳+細かい箇所を修正)

Unity 2018.1以降、MonoDevelop-UnityをUnityにバンドルしなくなり、
MonoDevelop-Unityを使用するためのサポートはUnity 2018.1以降ではサポートされなくなります。

Unityの(現在の実験的な).NET 4.6スクリプティングランタイムアップグレードにより、
C#6.0以降で利用可能な新しいエキサイティングなC#機能を多数サポートしていきます。
新しいC#機能に付随する素晴らしいC#IDE体験を提供することはUnityにとって非常に重要です。

Unityに含まれるMonoDevelop-Unity 5.9.6は、最新のC#機能をサポートしておらず、
Unityの新しい.NET 4.6スクリプトランタイムのC#スクリプトのデバッグとも互換性がありません。
これに対処するために2つの変更を行っています。

MacOSとWindows上のUnity 2018.1インストーラからMonoDevelop-Unity 5.9.6を削除し、
Unity 2018.1以降のUnityではサポートしなくなりました。
Unity 2018.1でmacOS上のC#IDEとしてVisual Studio for Macのみを含みます。
Windowsでは、Visual Studio 2017 Communityを引き続き使用し、代替手段としてMonoDevelop-Unityを含まなくなります。
Visual Studio for MacにはすでにUnityとの統合が含まれており、
Unity 5.6.1以降、最新のC#機能と.NET 4.6スクリプティングランタイムでのC#スクリプトのデバッグをサポートしています。

MacOSのMonoDevelop-Unityユーザは、Mac用のVisual Studioをダウンロード/インストールして、今すぐ使用することができます。

C#IDEの代替
Visual Studio for MacとVisual Studio 2017 Communityのほかに、現在いくつかのC#IDEの代替製品が用意されています。

  • Visual Studio Code (Windows, macOS, Linux)
  • JetBrains Rider (Windows, macOS, Linux)

三行で

  • Unity 2018.1以降、MonoDevelopはUnityにバンドルされずサポートしない
  • winではVisual Studio 2017 Community、macではVisual Studio for Macがバンドル
  • 理由は、最新のC#機能をサポートするため

引越した

そんなわけでUnity2017.2で
MonoDevelopからVisual Studio for Macに引越しました。
以下の手順で行いました。

  • 公式サイトからインストール
  • Unityで Preference > External Tools > External Script Editor を変更する
  • おわり

スクリーンショット 2018-01-13 12.38.46.png

Visual Studio引越初日に行ったこと

最低限の設定と確認。
Visual Studio for Mac Community v7.3.3で行いました。

1. 黒背景にする

ユーザ設定 > 視覚スタイル でテーマをDarkへ。

スクリーンショット 2018-01-13 12.19.20.png

2. スペース・タブを見えるようにする

ユーザ設定 > テキストエディター > マーカーとルーラー で非表示文字の設定。

スクリーンショット 2018-01-13 12.19.01.png

3.コードフォーマット作成

3.1. ポリシー作成

Visual Studio Community > ポリシー から作成。
主に以下をポリシー化しました。

  • 改行コード
  • タブ (ソフトタブ/ハードタブ)
  • インデント・改行・スペースの規則

スクリーンショット 2018-01-13 12.29.09.png

チーム開発であればポリシーをエクスポートしてチームに共有すれば同じポリシーが使用できます。

3.2. プロジェクトに適用

プロジェクト > ポリシーの適用 で適用。
プロジェクト > プロジェクトソリューション で詳細設定が可能でした。

スクリーンショット 2018-01-13 12.22.09.png

# ユーザ設定 > ソースコードに同じ項目の設定がありますが、
# プロジェクト設定が優先されるためこちらの設定は現在のプロジェクトには反映されない

4. デバッグ実行の確認

VisualStudio内で「F5」もしくは「Commandキーを押しながらEnter」でデバッグ実行状態になります。
この状態だと行表示の左をクリックするだけでブレークポイントが挿入可能に。

スクリーンショット 2018-01-13 18.08.31.png

UnityEditor側でゲーム実行し、ブレークポイント行を通ると一時停止することを確認しました。
Visual Studio側ではスレッドや呼び出し履歴などで実行状態を確認できました。

スクリーンショット 2018-01-13 18.12.23.png

動作しない場合は 実行 > プロセスにアタッチ でアタッチ先を確認すると良さげ。

補足

なんでUnity側の設定なしにここまでちゃんと使えるのか疑問でしたが、
Visual Studio for Mac Tools for Unityなるものがデフォルトに含まれているとのこと。
https://docs.microsoft.com/ja-jp/visualstudio/mac/setup-vsmac-tools-unity

↓機能拡張一覧を見ると確かにデフォルトで入っていました
スクリーンショット 2018-01-13 19.05.24.png

感想

操作感がほぼ同じで、より多機能になったのでスムーズに移行できました。
はじめてUnityを使用したときは、MonoDevelopが日本語に対応しておらず困った思い出があります。
先人の功績に感謝..!