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
370
Unity 2021.1での Unityパッケージの名称変更について
ryotamurohoshi
0
630
Odin Validationはいいぞ!
ryotamurohoshi
2
860
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
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Teambox: Starting and Learning
jrom
133
8.8k
Site-Speed That Sticks
csswizardry
0
24
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
Git: the NoSQL Database
bkeepers
PRO
427
64k
GitHub's CSS Performance
jonrohan
1030
460k
How GitHub (no longer) Works
holman
310
140k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Building an army of robots
kneath
302
43k
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 ここ、拍手してくれると嬉しいな!