Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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 ここ、拍手してくれると嬉しいな!