Slide 1

Slide 1 text

シリアライズされる名は。 ~C# 7.3使えるし、シリアライズされるときの名前、指定したくない!?~ @RyotaMurohoshi 2018/12/15(土) 【年末だよ】Unity お・と・なのLT大会 2018

Slide 2

Slide 2 text

会場のみなさん! Unity Learning Materialsをご覧のみなさん! こんにちは!こんばんは!

Slide 3

Slide 3 text

1人目、「むろほし」です よろしくお願いします

Slide 4

Slide 4 text

「Unity・お・と・なのLT大会」は、お酒を飲みながら とがった技術ネタ・今年頑張ったネタ オフレコなネタ・つらかったネタ・ただのネタ 様々なネタでLTをする年末恒例LT大会です

Slide 5

Slide 5 text

2013年からやってる このイベントも今年で6回目! 今年も緊張してます!

Slide 6

Slide 6 text

1つだけお願いがあります

Slide 7

Slide 7 text

拍手とか、相槌とか、笑いとか 愛のあるヤジ・声援とか! リアクションをお願いします

Slide 8

Slide 8 text

それではちょっと リアクションの 練習をしてみましょう!

Slide 9

Slide 9 text

拍手!!!

Slide 10

Slide 10 text

しんどいこと、大変だったこと、きつかったこと 2018年もたくさんありましたね そんな2018年の年の瀬、最後くらいは 会場のみんなで楽しく盛り上げていきましょう

Slide 11

Slide 11 text

むろほしの発表本編 ここから

Slide 12

Slide 12 text

2018年12月14日 祝、Unity 2018.3 リリース ここ、拍手してくれると嬉しいな!

Slide 13

Slide 13 text

Unity 2018.3と言えば・・・

Slide 14

Slide 14 text

Scripting Upgrade: Enabled Roslyn compiler and C# 7.3 when targeting the new Scripting Runtime Version. Unity2018.3 Release Noteより https://unity3d.com/jp/unity/whats-new/unity-2018.3.0

Slide 15

Slide 15 text

Roslyn Compiler そして C# 7.3が 普通に使えるようになりましたね! ここ、拍手してくれると嬉しいな!

Slide 16

Slide 16 text

突然ですが、あまり目立っていない C# 7.3の機能を紹介します!

Slide 17

Slide 17 text

自動実装プロパティの バッキングフィールドに 属性を指定できるようになった!

Slide 18

Slide 18 text

どういうことだってばよ?

Slide 19

Slide 19 text

プロパティってこれだよね フィールドを公開するのでなく、プロパティでフィールドにアクセス!

Slide 20

Slide 20 text

自動実装プロパティってこれだよね 自動実装プロパティでより簡潔に!便利!

Slide 21

Slide 21 text

自動実装プロパティのバッキングフィールドって?

Slide 22

Slide 22 text

自動実装プロパティのバッキングフィールドって? 自動実装プロパティを書くと内部的には C#のコードからは見えない フィールドとアクセッサが生成される

Slide 23

Slide 23 text

自動実装プロパティのバッキングフィールドって? 例えば「Level」というプロパティは内部的に • __BackingFIeld というフィールド • get_Levelというアクセッサメソッド • set_Levelというアクセッサメソッド

Slide 24

Slide 24 text

自動実装プロパティの バッキングフィールドに 属性を指定できるようになった って、どういうことかというと・・・

Slide 25

Slide 25 text

C# 7.3以前 自動実装プロパティのバッキングフィールドに 属性をつけることはできなかった ここで「へぇー」って言ってくれてもいいですよ!

Slide 26

Slide 26 text

C# 7.3から自動実装プロパティのバッキングフィールドに属性を つけらえるようになった! プロパティで使うバッキングフィールドに属性をつけたいときも、 自動実装プロパティが使えるように

Slide 27

Slide 27 text

自動実装プロパティのバッキングフィールドに属性を つけられなかった。C# 7.3より前は。 自動実装プロパティを使わないで普通のプロパティにする必要が!

Slide 28

Slide 28 text

自動実装プロパティは内部的に コードから見えないバッキングフィールドが作られる で、C# 7.3からこのバッキングフィールドにこんな感じで 属性をつけられるようになった! ここで「へぇー」って言ってくれてもいいですよ!

Slide 29

Slide 29 text

ここまでC#の話 ここからUnityの話

Slide 30

Slide 30 text

SerializeField属性って あるじゃないですか?

Slide 31

Slide 31 text

こんなコード書くじゃないですか?

Slide 32

Slide 32 text

これよく書きますよね? これ長くないですか? もっと短く書きたくないですか? ここ、「確かに~」みたいなリアクションしてくれると嬉しいな!

Slide 33

Slide 33 text

こんな風に書けたら嬉しくないですか?

Slide 34

Slide 34 text

だけど、これだめなんです(涙)

Slide 35

Slide 35 text

k__BackingField

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

k__BackingField

Slide 39

Slide 39 text

k__BackingField バッキングフィールドの名前はこんな感じ だからいい感じにシリアライズできない

Slide 40

Slide 40 text

おしい! ここ、「あ~」みたいなリアクションしてくれると嬉しいな!

Slide 41

Slide 41 text

自動実装プロパティのバッキングフィールド にSerializeField属性はつけることはできる けれどバッキングフィールドの名前を指定できない k__BackingFieldとかになる だから変な名前でシリアライズされてしまう

Slide 42

Slide 42 text

ちくしょう! おしい!!!

Slide 43

Slide 43 text

こんな風に書いて、良い感じにシリアライズしてほしい! けれど、それは無理っぽい!

Slide 44

Slide 44 text

ならフィールドが シリアライズされる名前を 指定したい!

Slide 45

Slide 45 text

シリアライズされる名は。 ~C# 7.3使えるし、シリアライズされるときの名前、指定したくない!?~ これタイトルです

Slide 46

Slide 46 text

ここまでC#とUnityの、おしかった話 ここからは、お願いの話

Slide 47

Slide 47 text

Unityでフィールドをシリアライズするときに シリアライズする名前を指定できる 機能がほしい!!!!

Slide 48

Slide 48 text

もしこれがあれば、 C# 7.3と合わせて

Slide 49

Slide 49 text

こんなコードが・・・

Slide 50

Slide 50 text

こんな風に書けたら嬉しくないですか?

Slide 51

Slide 51 text

こんな風に書けたら嬉しくないですか?

Slide 52

Slide 52 text

ところで・・・

Slide 53

Slide 53 text

Unity Feedback Unityに将来実装してほしい機能を要望として投稿することができるやつ 他の人のアイデアが良いと思ったとき、それに投票することもできる

Slide 54

Slide 54 text

実はUnity Feedbackにもう建てた! https://feedback.unity3d.com/suggestions/feature-that-specifies-serialized-name-not-with-field-name

Slide 55

Slide 55 text

こんな風に書きたい人! 貴重なフィードバックの1票を このフィードバックに投票をお願いします!

Slide 56

Slide 56 text

シリアライズされる名は。 ~C# 7.3使えるし、シリアライズされるときの名前、指定したくない!?~ @RyotaMurohoshi 2018/12/15(土) 【年末だよ】Unity お・と・なのLT大会 2018 ここ、拍手してくれると嬉しいな!