Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
シリアライズされる名は。
Search
RyotaMurohoshi
December 15, 2018
0
520
シリアライズされる名は。
2018/12/15(土)に開催された「お・と・なのUnity LT大会」で発表したプレゼンの資料です。
RyotaMurohoshi
December 15, 2018
Tweet
Share
More Decks by RyotaMurohoshi
See All by RyotaMurohoshi
Unityの合同同人誌や合同商業誌を書いてる僕は感想やレビューや評価が欲しい
ryotamurohoshi
0
420
Unity 2021.1での Unityパッケージの名称変更について
ryotamurohoshi
0
640
Odin Validationはいいぞ!
ryotamurohoshi
2
880
Tilemapはいいぞ!2020 〜すごいぞ、プロジェクト専用拡張Brush〜
ryotamurohoshi
0
2.3k
Unityでも、新しいC#
ryotamurohoshi
0
1.2k
Riderはいいぞ!
ryotamurohoshi
1
3.3k
Riderのススメ〜俺はRiderここが好き〜
ryotamurohoshi
1
2.3k
Unity開発者に伝えたい.NETのこと
ryotamurohoshi
4
36k
ImportedLinqのススメ
ryotamurohoshi
0
1.3k
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
510
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
KATA
mclloyd
29
14k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Become a Pro
speakerdeck
PRO
26
5k
Making the Leap to Tech Lead
cromwellryan
133
9k
Optimising Largest Contentful Paint
csswizardry
33
3k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
Transcript
シリアライズされる名は。 ~C# 7.3使えるし、シリアライズされるときの名前、指定したくない!?~ @RyotaMurohoshi 2018/12/15(土) 【年末だよ】Unity お・と・なのLT大会 2018
会場のみなさん! Unity Learning Materialsをご覧のみなさん! こんにちは!こんばんは!
1人目、「むろほし」です よろしくお願いします
「Unity・お・と・なのLT大会」は、お酒を飲みながら とがった技術ネタ・今年頑張ったネタ オフレコなネタ・つらかったネタ・ただのネタ 様々なネタでLTをする年末恒例LT大会です
2013年からやってる このイベントも今年で6回目! 今年も緊張してます!
1つだけお願いがあります
拍手とか、相槌とか、笑いとか 愛のあるヤジ・声援とか! リアクションをお願いします
それではちょっと リアクションの 練習をしてみましょう!
拍手!!!
しんどいこと、大変だったこと、きつかったこと 2018年もたくさんありましたね そんな2018年の年の瀬、最後くらいは 会場のみんなで楽しく盛り上げていきましょう
むろほしの発表本編 ここから
2018年12月14日 祝、Unity 2018.3 リリース ここ、拍手してくれると嬉しいな!
Unity 2018.3と言えば・・・
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
Roslyn Compiler そして C# 7.3が 普通に使えるようになりましたね! ここ、拍手してくれると嬉しいな!
突然ですが、あまり目立っていない C# 7.3の機能を紹介します!
自動実装プロパティの バッキングフィールドに 属性を指定できるようになった!
どういうことだってばよ?
プロパティってこれだよね フィールドを公開するのでなく、プロパティでフィールドにアクセス!
自動実装プロパティってこれだよね 自動実装プロパティでより簡潔に!便利!
自動実装プロパティのバッキングフィールドって?
自動実装プロパティのバッキングフィールドって? 自動実装プロパティを書くと内部的には C#のコードからは見えない フィールドとアクセッサが生成される
自動実装プロパティのバッキングフィールドって? 例えば「Level」というプロパティは内部的に • <Level>__BackingFIeld というフィールド • get_Levelというアクセッサメソッド • set_Levelというアクセッサメソッド
自動実装プロパティの バッキングフィールドに 属性を指定できるようになった って、どういうことかというと・・・
C# 7.3以前 自動実装プロパティのバッキングフィールドに 属性をつけることはできなかった ここで「へぇー」って言ってくれてもいいですよ!
C# 7.3から自動実装プロパティのバッキングフィールドに属性を つけらえるようになった! プロパティで使うバッキングフィールドに属性をつけたいときも、 自動実装プロパティが使えるように
自動実装プロパティのバッキングフィールドに属性を つけられなかった。C# 7.3より前は。 自動実装プロパティを使わないで普通のプロパティにする必要が!
自動実装プロパティは内部的に コードから見えないバッキングフィールドが作られる で、C# 7.3からこのバッキングフィールドにこんな感じで 属性をつけられるようになった! ここで「へぇー」って言ってくれてもいいですよ!
ここまでC#の話 ここからUnityの話
SerializeField属性って あるじゃないですか?
こんなコード書くじゃないですか?
これよく書きますよね? これ長くないですか? もっと短く書きたくないですか? ここ、「確かに~」みたいなリアクションしてくれると嬉しいな!
こんな風に書けたら嬉しくないですか?
だけど、これだめなんです(涙)
<Level>k__BackingField
None
None
<Level>k__BackingField
<Level>k__BackingField バッキングフィールドの名前はこんな感じ だからいい感じにシリアライズできない
おしい! ここ、「あ~」みたいなリアクションしてくれると嬉しいな!
自動実装プロパティのバッキングフィールド にSerializeField属性はつけることはできる けれどバッキングフィールドの名前を指定できない <Level>k__BackingFieldとかになる だから変な名前でシリアライズされてしまう
ちくしょう! おしい!!!
こんな風に書いて、良い感じにシリアライズしてほしい! けれど、それは無理っぽい!
ならフィールドが シリアライズされる名前を 指定したい!
シリアライズされる名は。 ~C# 7.3使えるし、シリアライズされるときの名前、指定したくない!?~ これタイトルです
ここまでC#とUnityの、おしかった話 ここからは、お願いの話
Unityでフィールドをシリアライズするときに シリアライズする名前を指定できる 機能がほしい!!!!
もしこれがあれば、 C# 7.3と合わせて
こんなコードが・・・
こんな風に書けたら嬉しくないですか?
こんな風に書けたら嬉しくないですか?
ところで・・・
Unity Feedback Unityに将来実装してほしい機能を要望として投稿することができるやつ 他の人のアイデアが良いと思ったとき、それに投票することもできる
実はUnity Feedbackにもう建てた! https://feedback.unity3d.com/suggestions/feature-that-specifies-serialized-name-not-with-field-name
こんな風に書きたい人! 貴重なフィードバックの1票を このフィードバックに投票をお願いします!
シリアライズされる名は。 ~C# 7.3使えるし、シリアライズされるときの名前、指定したくない!?~ @RyotaMurohoshi 2018/12/15(土) 【年末だよ】Unity お・と・なのLT大会 2018 ここ、拍手してくれると嬉しいな!