Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
シリアライズされる名は。
Search
RyotaMurohoshi
December 15, 2018
710
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
シリアライズされる名は。
2018/12/15(土)に開催された「お・と・なのUnity LT大会」で発表したプレゼンの資料です。
RyotaMurohoshi
December 15, 2018
More Decks by RyotaMurohoshi
See All by RyotaMurohoshi
Tilemapのアップデートについて
ryotamurohoshi
0
100
Unityの合同同人誌や合同商業誌を書いてる僕は感想やレビューや評価が欲しい
ryotamurohoshi
0
630
Unity 2021.1での Unityパッケージの名称変更について
ryotamurohoshi
0
920
Odin Validationはいいぞ!
ryotamurohoshi
2
1.1k
Tilemapはいいぞ!2020 〜すごいぞ、プロジェクト専用拡張Brush〜
ryotamurohoshi
0
2.6k
Unityでも、新しいC#
ryotamurohoshi
0
1.5k
Riderはいいぞ!
ryotamurohoshi
1
3.8k
Riderのススメ〜俺はRiderここが好き〜
ryotamurohoshi
1
2.8k
Unity開発者に伝えたい.NETのこと
ryotamurohoshi
4
38k
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
560
RailsConf 2023
tenderlove
30
1.6k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Become a Pro
speakerdeck
PRO
31
6.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
Designing Powerful Visuals for Engaging Learning
tmiket
1
600
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
430
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
930
Between Models and Reality
mayunak
4
500
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
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 ここ、拍手してくれると嬉しいな!