この記事は、 Unity Advent Calendar 2018、12月1日の記事です。アドベントカレンダー初体験&トップバッターを勝手ながら務めさせていただきます。

さて、何を書けばいいかわからないって言ったら追い出されそうなので、軽く自己紹介と宣伝だけさせてください。

ゼルチカと言います。Unityで長らくゲーム作っていて、今秋にゲームをリリースしました。おさかなれすきゅ~というゲームです。遊んでいただけると幸いです。



Unity 2018.3 に期待していること



さて本題。おそらくそろそろUnity 2018.3がリリースされる頃でして、私が個人的に期待している新機能について斬り込んでいこうと思います。

Roslyn + C# 7.3





  • Scripting Upgrade: Enabled Roslyn compiler and C# 7.3 when targeting the new scripting runtime.




これを外してはC#erを名乗れませんね。Microsoftが開発しているC#で書かれたC#ライブラリ「Roslyn」が、UnityのC#コンパイラーとして採用されたことにより、現行最新仕様のC# 7.3をUnityで利用できるようになります!!!

C# 7には、ローカル関数タプル型Switchなどの新仕様が追加されます。詳しいことは各サイトを見ていただきたいのですが、Unity上でこう書けると便利だよねという例を示したいと思います。

// EnemyBase クラスと、その派生クラス EnemyBat, EnemyTurtle が定義済みであるとする
void
OnCollisionEnter(Collision c)
{
switch (c.gameObject.GetComponent<EnemyBase>())
{
case EnemyBat b:
Debug.Log($"コウモリにぶつかった! 座標: {b.transform.position}");
break;
case EnemyTurtle t:
Debug.Log($"カメにぶつかった! 座標: {t.transform.position}");
break;
}
}


これは、switch文を拡張したものになっていて、caseのところに型名を指定することで、変数の型で分岐するという書き方ができる新仕様です。型名の隣のbとかtは、一致したときに、変数の値がそれぞれの型に変化されて渡される、パラメーターです。ぶつかったゲームオブジェクトがヘビだったら、bにEnemyBat型のオブジェクトが入るといった感じです。

.NET 3.5の時代は、アア、オワッタ..!

アイソメトリック・タイルマップ





  • 2D: Added Isometric support for 2D Tilemap.




アイソメトリックと聞いてなんぞや?って思った方もいるでしょう。どうやら、こういうものらしいです

少しはマシに

( 画像引用: http://sc2.s27.xrea.com/sc2/making/06.html )

シムシティ2000は幼い頃にやろうとして難しすぎて、プリセットのワールドでメルトダウンや地震起こして遊んでました。

この45度傾いたような視点のタイルマップのことを、アイソメトリックと呼ぶらしいです。最近のスマホゲーでも某農場育成ゲームとかがこういう表示ですよね。クォータービューとも言うような。

またUnityで2Dの幅が広がりました。

愚痴



Unity 2018.3 、もう少し早い時期に出るのかなって思ったらもう12月ですね。LTS扱いになるのかなあ。Unity公式はいつ頃に最新版を出すというアナウンスはするつもりないのだろうか??いや、もしかしたら私が見れていないだけかもしれなく、本当はあるのかもしれない...。

あ、それと、Unity 2018.2がマイナーバージョン番号14までいっているを見て、不安定すぎない?って気持ちになりました。一応ゲームライブラリをUnity向けに作っていて、毎度更新するたびに表示される、マイグレーション用のダイアログを見て、あーまた互換切りをしてしまうぜ~って気持ちで更新していました。

年単位になったのは活発でよいのですが、それからかUnity Editorのクラッシュも頻発するようになったかなあ。

というお気持ちです。