【感動】UnityでC# 6.0 が使えた!!

TOC

  1. 1. リポジトリをダウンロード
  2. 2. プロジェクトにインポート
  3. 3. 試す
  4. 4. Visual Studio、MonoBehaviourでエラーが出るときは
  5. まとめ

追記:朗報
Unity 2017 からは、デフォルトで C# 6.0 および .NET 4.6 が使用可能なようです!

この記事では Unity 5 での場合を紹介しています。

こんにちはー!!

Unityでも、最新の C# 6.0 を使って、
async、await とかカッコよくコードを書きたいんだ ლ(´ڡ`ლ)

そんなことできないかなーと思って、調べてみました。

そしたら、なんと、ありました!!ので紹介します。

1. リポジトリをダウンロード

C# 6.0関係のいろいろが入ったリポジトリをBitbucketからダウンロードします。

https://bitbucket.org/alexzzzz/unity-c-5.0-and-6.0-integration/downloads

ダウンロードしたファイルは、Zip形式で圧縮されているので、展開します。

2. プロジェクトにインポート

Unityのプロジェクトのフォルダーを開き、
「CSharp60Support」をコピーします。

unity-cs6-copy

CSharp60Support内の、「CSharp60Support for Unity 5.unitypackage」
(Unity 4だったらUnity 4の方)を開き、
プロジェクトにインポートします。
import-cs6-unity

unity-cs6-many-errs
大量にエラーが出ますが、気にせず、
「CSharp60Support」ディレクトリを右クリックし、「Reimport All」をクリック。
unity-cs6-reimport
ダイアログが出てくるので、「Reimport」を選択すると、Unityが再起動し、エラーがすべて消えます。

3. 試す

新しいスクリプトを適当に作って、C# 6.0を試してみましょう。
試す機能は、String interpolationです。

1
2
3
4
5
6
7
8
9
10
// 略

void Start()
{
string s1 = "world";
string s2 = $"Hello, {s1}";
Debug.Log(s2);
}

// 略

新しく空のゲームオブジェクト(Hierarchy右クリック「Create Empty」とか)を作成し、
作ったスクリプトをアタッチしましょう。

実行すると・・・・!
unity-cs6-success

できました~~!!

4. Visual Studio、MonoBehaviourでエラーが出るときは

Unityではエラーが出なくても、
「◯◯という機能はC# 6.0で使えて、C# 4では使えないよー」的なエラーが、
Visual Studio、MonoBehaviour側で出るときは、IDEを再起動しましょう。

まとめ

これでのびのびとUnityが使える!

自分的には、C# 6.0で一番便利な機能は、↑の、$"{変数}"で、string.Formatっぽいのが使える機能です(名前忘れた -> 追記: String interpolation らしい)
これが使えるのは本当に嬉しい!

(え、async 、await 使ってみないの)→試してみます!