見出し画像

気がついたらUnityのC#がめっちゃ進化していた!

コード書いとる?

最近Unityを使ってゲームのプロトタイプを作っています。Unity 2019.4.21f1 を使ってますが、C#7.3相当の機能が使えると知って、色々と試してみたのでメモ書き。数年前からめっちゃ進化してるじゃん...。ここはnote。

値の入れ替え

タプル(いくつかの型を組み合わせた名前のない構造体...という解釈でいいのかな?)を使って値の入れ替えがサクッと書ける...

var a = 1;
var b = 2;
(a, b) = (b, a);    // 値の入れ替えができる...!!

書式指定文字列

正式な名称を知らないのですが...もうFormatとかいらんやん...

var a = 1;
var text = $"{a}";         // 変数aの値が文字列中に展開される
test = $"{a:000}"          // 3桁0詰め

関数の引数で変数を作る

変数のスコープが局所的になって良い!

// 変数hitを、定義と当時に引数にできる
if (Physics.Raycast(ray, out var hit, 100))
{
 // 何か処理
}

LINQ

便利すぎて爆発しそう!

int[] a = { 0, 1, 2, 3, 4 };
// 偶数だけ選んで、2倍した値で新しく配列を作る
a = a.Where(v => (v % 2) == 0).Select(v => v * 2).ToArray();

nullの時は何もしない

いちいちnullチェックする手間が省けて大助かりです!

var component = GetComponent<Widget>();
component?.SomeFunction();                // componentがnullじゃない時だけ実行する

他にも色々あったような気がします...また思い出しながらまとめます。

参考資料

これまでのC#の仕様が簡潔にまとまっています!共有感謝...!

https://ufcpp.net/study/csharp/

ではまた次回!

この記事が参加している募集

最近の学び

この記事が気に入ったらサポートをしてみませんか?