Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Unityでも、新しいC#

 Unityでも、新しいC#

2019年12月07日(土)に開催された『【年末だよ】Unity お・と・なのLT大会 2019』のLT資料です。

https://meetup.unity3d.jp/jp/events/1178

RyotaMurohoshi

December 07, 2019
Tweet

More Decks by RyotaMurohoshi

Other Decks in Technology

Transcript

  1. View Slide

  2. View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. は10分では無理だけど・・・

    View Slide

  8. 「あっこんなのもあるんだ、いいじゃん!
    C#」
    ってUnityプログラマのみなさんに思ってもらうために、
    オススメの機能を紹介!

    View Slide

  9. ● @RyotaMurohoshi(むろほし)
    ● C#・LINQ好きのMS MVP
    ● 好きなIDEはRider
    ● 好きなUnityの機能はTilemap

    View Slide

  10. 独断と偏見で選んだUnityでゲームロジックを
    ガリガリ書くときのオススメC#の機能
    紹介していきます!

    View Slide

  11. 進化したプロパティ

    View Slide

  12. プロパティ

    View Slide

  13. 新しいC#では、プロパティは短く書ける!

    View Slide

  14. Before : Unityでよく書く

    View Slide

  15. After :「式形式」はメソッドにも・プロパティにも

    View Slide

  16. もう一例!

    View Slide

  17. Before: ゲッター・セッター両方

    View Slide

  18. After: ゲッター・セッター両方、式形式に

    View Slide

  19. ここまでは、バッキングフィールドを使った
    プロパティの改善でした

    View Slide

  20. 「自動実装プロパティ」ってありましたね

    View Slide

  21. 古いC#で自動実装プロパティが書けなかった場所も
    新しいC#では書けるように!

    View Slide

  22. Before: 初期化のためだけにフィールド

    View Slide

  23. After: 新しいC#ならフィールドいらない

    View Slide

  24. もう一例!

    View Slide

  25. After: readonlyのためにフィールド

    View Slide

  26. Before: 新しいC#ならプロパティだけでOK

    View Slide

  27. ゲームロジック書くときに、プロパティは超使う!
    そんなプロパティは、新しいC#でより便利に!

    View Slide

  28. タプル (ValueTuple)

    View Slide

  29. タプル(ValueTuple)
    クラス・構造体を作らなくても名前のない型を作れる。
    複数の値をまとめられる。
    ToStringやEqualsが実装され、==での比較ができる

    View Slide

  30. View Slide

  31. クラスや構造体を作るのがめんどくさい時、ありません?
    ● LINQやRxの中間データ
    ● ちょっとしたメソッドの返り値型

    View Slide

  32. そこで、タプル(ValueTuple)ですよ!

    View Slide

  33. View Slide

  34. タプル(ValueTuple)は分解も便利!

    View Slide

  35. タプルと分解のコンボがナイス

    View Slide

  36. ロジックガリガリ書くとき、
    タプル、大活躍!

    View Slide

  37. 進化したswitch

    View Slide

  38. 今までのswitchのよくある使い方

    View Slide

  39. 今までのswitchのよくある使い方、列挙型の例

    View Slide

  40. 新しいC#ではswitchで
    型による分岐ができるように!

    View Slide

  41. 新しいC#では型による分岐ができるように

    View Slide

  42. 新しいC#では型による分岐ができるように

    View Slide

  43. ダメージ計算とかで、
    すごい便利そうじゃないですか?

    View Slide

  44. C# 8.0で、switchはもっと便利に!

    View Slide

  45. private protected

    View Slide

  46. private、protected、public
    こういうアクセスレベルに・・・

    View Slide

  47. private protected
    ってのが加わったよ!
    Assembly Definition Filesでアセンブリ分ける人、要チェック

    View Slide

  48. 「C#のアクセス修飾子 2019 〜protectedは 結構でかい〜」

    View Slide

  49. 構造体も進化

    View Slide

  50. @neuecc さんのUnderstanding C# Struct All Things
    がUnity Learning Materilasに!要チェック!

    View Slide

  51. それ以外にもたくさん

    View Slide

  52. ● 文字列もいい感じに
    ● nullもいい感じに
    ● ローカル関数
    ● 式形式のメンバ
    ● nameof
    他にもいろいろ!

    View Slide

  53. C#たくさん、進化してましたね!

    View Slide

  54. 新しいC#の機能を使わなくても
    Unityでゲームは作れる
    けれど、ロジックをたくさん作ってきたあなたの
    力になる機能がきっと新しいC#にある!

    View Slide

  55. 新しいC#の機能、使わなくてもゲームは作れる
    けれど、ロジックをバリバリ作ってきたあなたの
    力になる機能がきっと新しいC#にある!

    View Slide

  56. 公式ドキュメント そして @ufcpp さんのサイト
    でどんな新しいC#の機能があるか
    ぜひ見てみてください!

    View Slide

  57. Unity でも、新しい C#
    @RyotaMurohoshi
    2019/12/07(土) Unity部 お・と・なのLT大会 2019

    View Slide

  58. View Slide