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
340
Unity 2021.1での Unityパッケージの名称変更について
ryotamurohoshi
0
620
Odin Validationはいいぞ!
ryotamurohoshi
2
840
Tilemapはいいぞ!2020 〜すごいぞ、プロジェクト専用拡張Brush〜
ryotamurohoshi
0
2.3k
Unityでも、新しいC#
ryotamurohoshi
0
1.2k
Riderはいいぞ!
ryotamurohoshi
1
3.2k
Riderのススメ〜俺はRiderここが好き〜
ryotamurohoshi
1
2.2k
Unity開発者に伝えたい.NETのこと
ryotamurohoshi
4
36k
ImportedLinqのススメ
ryotamurohoshi
0
1.3k
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
51
13k
Code Reviewing Like a Champion
maltzj
519
39k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
46
2.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
YesSQL, Process and Tooling at Scale
rocio
167
14k
How GitHub (no longer) Works
holman
311
140k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Automating Front-end Workflow
addyosmani
1365
200k
Designing for Performance
lara
604
68k
A Tale of Four Properties
chriscoyier
156
23k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
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 ここ、拍手してくれると嬉しいな!