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
さては密結合だなオメー Clean Architecture で学ぶ テストフレンドリーな疎結...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Tetsuya Mori
PRO
June 06, 2018
Technology
9
28k
さては密結合だなオメー Clean Architecture で学ぶ テストフレンドリーな疎結合設計/Loosely Coupled Design Learning with Clean Architecture
2018/06/06 に開催された「Unity テスト完全に理解した」という勉強会での発表資料です。
Tetsuya Mori
PRO
June 06, 2018
Tweet
Share
More Decks by Tetsuya Mori
See All by Tetsuya Mori
ビルドシステムを C# 大統一したお話
monry
PRO
2
1.4k
C# 大統一理論推進委員会 会員のための Unity Package Manager プロジェクト構成案
monry
PRO
0
1.6k
はじめての C# 大統一理論
monry
PRO
0
790
unity1week でチーム開発を成功させる秘訣
monry
PRO
0
280
Unity で ARゲームを作った話
monry
PRO
1
930
Visual Programming Framework UniFlow のご紹介/Introducing UniFlow
monry
PRO
2
3k
UniFlow 完全に理解した / I can develop UniFlow a little.
monry
PRO
0
540
Democratized Unity Package Manager
monry
PRO
1
2.9k
使ってみよう! Unity RemoteSettings/Let's use Unity RemoteSettings
monry
PRO
1
1.2k
Other Decks in Technology
See All in Technology
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.5k
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
670
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
260
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
650
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
320
Context Engineeringの取り組み
nutslove
0
360
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
340
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
380
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
370
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
1
2.8k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
OpenShiftでllm-dを動かそう!
jpishikawa
0
130
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
Practical Orchestrator
shlominoach
191
11k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Optimizing for Happiness
mojombo
379
71k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
The Limits of Empathy - UXLibs8
cassininazir
1
220
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
The browser strikes back
jonoalderson
0
390
Building Applications with DynamoDB
mza
96
6.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Transcript
גࣜձࣾΩοζελʔ CTO ɹ࠸ ͯ͞ີ݁߹ͩͳΦϝʔ Clean Architecture ͰֶͿ ςετϑϨϯυϦʔͳૄ݁߹ઃܭ Unity ςετશʹཧղͨ͠
@ 2018/06/06
2 ͜ΜΜʂ
3 ಥવͰ͕͢ ઃܭਤͷݕূ༻ઃܭਤ ςετɺॻ͍ͯ·͔͢ʁ
4 ࢲɺ࠷ۙ·Ͱ ॻ͍͍ͯ·ͤΜͰͨͬ͠ʂ
rΜΓ͌ઌੜ l͋ͳͨͨͪͷதͰςετΛॻ͍͍ͯΔऀ͕ɺ ·ͣɺࢲʹੴΛ͛ͳ͍͞ɻz 5
6 ͋͋ͬʂੴΛ͛ͳ͍Ͱʂ ϚαΧϦΛ͛ͳ͍Ͱʂʂʢ࣮ʣ
ࣗݾհ 7
wɹ࠸ʢBLBΜΓ͌ઌੜʣ w࡛ۄݝ࢈ wגࣜձࣾΩοζελʔ$50 wࡀϲ݄ͷ່ʹκοίϯ-07& w͓ञͱ߹এͱϓϩάϥϛϯά͕झຯ w5XJUUFS!NPOSZ(JU)VC!NPOSZ 8 Who am I
?
w ࢠͲ͚εϚϗΞϓϦ ։ൃͳͲ w ͋ͨΓ͔Β 6OJUZΨοπϦ w ͬ͜͝ϥϯυ ྦྷܭສ%- w
"QQ4UPSF(PPHMF1MBZ ʹͯࢠͲ͚ΧςΰϦ ϥϯΩϯά501 9 ͓͠͝ͱ
લஔ͖ 10
11 ࠓճ
12 ϓϩδΣΫτͷίʔυΛ ςετ͠қ͘͢Δख๏ʹ ͍͓ͭͯ͠͠·͢ɻ
ΞδΣϯμ 13
w6OJUZςετʹ͓͚Δ՝ wૄ݁߹ͷجຊతͳߟ͑ํ w$MFBO"SDIJUFDUVSFʹ͍ͭͯ w$"'6ʹ͍ͭͯ 14 ͓͠ͳ͕͖
15 ຊ
w6OJUZςετʹ͓͚Δ՝ wૄ݁߹ͷجຊతͳߟ͑ํ w$MFBO"SDIJUFDUVSFʹ͍ͭͯ w$"'6ʹ͍ͭͯ 16 ͓͠ͳ͕͖
Unity ςετʹ͓͚Δ՝ 17
w୯ମςετ6OJU5FTU w݁߹ςετ*OUFHSBUJPO5FTU w૯߹ςετ4ZTUFN5FTU 18 ςετ is Կʁ Unity ςετʹ͓͚Δ՝
wʮ͍ɺγϯϓϧͳΫϥεͳΒ65ॻ͚ΔΜ͢Αʯ wঢ়ଶΛඞཁͱ͢Δςετ͕γϯυΠ w֎෦σʔλʹґଘ͢Δςετɺ 4DSJQUBCMF0CKFDUͷσʔλʹґଘ͢Δςετ͕ γϯυΠ w7JFX .POP#FIBWJPVS ʹґଘ͢Δͱ͔ͳΔͱ ઈత 19
Կނɺॻ(͔|͚)ͳ͍ʁ Unity ςετʹ͓͚Δ՝
wʮ͍ɺ1MBZ.PEFςετ͋ΔΜʯ w͍ͬͯ͟ΈΔͱɺ৭ʑͳ՝͕ ݟ͑ͯ͘Δ 20 Կނɺॻ(͔|͚)ͳ͍ʁ Unity ςετʹ͓͚Δ՝
w͋ΔΫϥεͭҎ্ͷΫϥεͷ ΠϯελϯεΛඞཁͱ͍ͯ͠Δ w߹ʹΑͬͯɺͦΕΒͷ ΠϯελϯεߋʹผͷΫϥεͷ ΠϯελϯεΛඞཁͱ͍ͯ͠Δ ͳΜͯ͜ͱ 21 ՝ʁ Unity ςετʹ͓͚Δ՝
wσʔλͷݩωλʹڌΒͣɺσʔλΛ औಘɾઃఆ͢ΔॲཧΛςετ͍ͨ͠ w<0CTPMFUF>3FTPVSDFT-PBE w6OJUZ8FC3FRVFTU wϩʔΧϧΩϟογϡ wFUD 22 ՝ʁ Unity
ςετʹ͓͚Δ՝
w7JFXͷॲཧ͕λοϓೖྗΛલఏʹͯ͠ ͍Δ wଞͷ(BNF0CKFDU͕ॳظԽ͞Ε͍ͯΔ ίτΛલఏʹ͍ͯ͠Δ w4JOHMFUPOͱ͔ͰલͷγʔϯͰઃఆ͞ ΕͨΛඞཁͱ͢Δ 23 ՝ʁ Unity ςετʹ͓͚Δ՝
24 ͜͏͍͏ঢ়ଶ
25 is
26 ີ݁߹
27 ີ݁߹
28 ີ݁߹
29
w4JOHMFUPO.POP#FIBWJPVSűŒŕŰŖ wTUBUJD͓͡͞Μ w ߦΛ͑Δ6QEBUF 30 ີ݁߹ Unity ςετʹ͓͚Δ՝
wͪΐͬͱؾΛൈ͘ͱ͙͢͜͏ͳΔ w݁߹Λ΄Ͳ͍ͯૄ݁߹ʹ͠Α͏ʂ 31 ີ݁߹ Unity ςετʹ͓͚Δ՝
32 ͦͷลΛ౿·͑ͯ
w6OJUZςετʹ͓͚Δ՝ wૄ݁߹ͷجຊతͳߟ͑ํ w$MFBO"SDIJUFDUVSFʹ͍ͭͯ w$"'6ʹ͍ͭͯ 33 ͓͠ͳ͕͖
ૄ݁߹ͷجຊతͳߟ͑ํ 34
35
36 Ҏ্ɻ
37 ………ɻ
38 ૄ݁߹ͷͨΊͷ ςΫχοΫΛʢࡶʹʣհ
w4JOHMF3FTQPOTJCJMJUZ1SJODJQMF w0QFODMPTFEQSJODJQMF w-JTLPWTVCTUJUVUJPOQSJODJQMF w*OUFSGBDFTFHSFHBUJPOQSJODJQMF w%FQFOEFODZJOWFSTJPOQSJODJQMF 39 SOLID ݪଇ ૄ݁߹ͷجຊతͳߟ͑ํ
w୯Ұͷݪଇ w։์ดͷݪଇ wϦείϑͷஔݪଇ wΠϯλϑΣʔεͷݪଇ wґଘੑٯసͷ๏ଇ 40 SOLID ݪଇ ૄ݁߹ͷجຊతͳߟ͑ํ
41
w40-*%ݪଇ͕कΒΕ͍ͯΔίʔυ ͦͷҰͭҰͭʹ͍ͭͯɺؔ৺ͷ͕ ߦΘΕ͍ͯΔͱݴ͑Δ w͢ͳΘͪɺݸʑͷίʔυʹ͓͚Δ ςετରͷؔ৺ࣄ͕গͳ͍ w͢ͳΘͪɺૄ݁߹ͩͱݴ͑Δ 42 SOLID ݪଇ ૄ݁߹ͷجຊతͳߟ͑ํ
wૄ݁߹ͳγεςϜʹର͢Δςετ ͭͷςετίʔυ͕ෛ͏͕ڱ͍ wςετΛ࣮ࢪ͢Δࡍͷ४උॲཧ͕ গͳ͘ͳΔέʔε͕ଟ͍ 43 ૄ݁߹ × ςετ ૄ݁߹ͷجຊతͳߟ͑ํ
wۃͱͯ͠ɺ֤ཁૉʹର͢Δ65͕ ॻ͔Ε͍ͯΕ*5ͦ͜·Ͱ ؤுΒͳͯ͘ࡁΉ 44 ૄ݁߹ × ςετ ૄ݁߹ͷجຊతͳߟ͑ํ
45 ͰʁHow to ૄ݁߹ʁ
w6OJUZςετʹ͓͚Δ՝ wૄ݁߹ͷجຊతͳߟ͑ํ w$MFBO"SDIJUFDUVSFʹ͍ͭͯ w$"'6ʹ͍ͭͯ 46 ͓͠ͳ͕͖
Clean Architecture ʹ͍ͭͯ 47
48 ͷɺલʹ
w͜͜·Ͱ୯ҰͷΫϥεʹؔ͢Δ ؔ৺ͷʹ͍ͭͯ wҰͭࢹ࠲Λ֦͛ͯϨΠϠʔʹؔ͢Δ ؔ৺ͷʹ͍ͭͯߟ͑Δ 49 ؔ৺ͷ Clean Architecture ʹ͍ͭͯ
wιϑτΣΞΞʔΩςΫνϟ ʹԙ͍ͯɺҰൠʹҎԼͷ Α͏ʹϨΠϠʔΛ͚Δ ʢίτ͕ଟ͍ʣ w1SFTFOUBUJPO ݟͨ w%PNBJO ϩδοΫ
w%BUB σʔλ 50 ؔ৺ͷ for ϨΠϠʔ Presentation Domain Data Clean Architecture ʹ͍ͭͯ
w.7$.71ͳͲͷ ΞʔΩςΫνϟʹΑΓ 1SFTFOUBUJPOͱ%PNBJO ͷ͕࣮ݱ͞ΕΔ w֤ΞʔΩςΫνϟͰ ͷ۩ମతͳखஈ ༷ʑ w.71.77.ͩͱ 3YΛ͏ͷ͕Ұൠతʁ 51
ؔ৺ͷ for ϨΠϠʔ Presentation Domain Data Clean Architecture ʹ͍ͭͯ
w%PNBJOͱ%BUBͷ ֤छσβΠϯύλʔϯ͕ ୲͏͜ͱ͕ଟ͔ͬͨ wͱ͍͏͔ɺ.7 Ͱ %PNBJOҎ߱ʹ͍ͭͯͷ ΛΞʔΩςΫνϟ ͱͯ͠ෛ͍ͬͯͳ͍ײ͡ 52 ؔ৺ͷ
for ϨΠϠʔ Presentation Domain Data Clean Architecture ʹ͍ͭͯ
wͰɺͦͷลఆٛͨ͠ ΞʔΩςΫνϟ͕ొ͢Δ w)FYBHPOBM"SDIJUFDUVSF w0OJPO"SDIJUFDUVSF w$MFBO"SDIJUFDUVSF 53 ؔ৺ͷ for ϨΠϠʔ Presentation
Domain Data Clean Architecture ʹ͍ͭͯ
54 Α͏͘ຊ
w6ODMF#PC 3PCFSU$.BSUJO ࢯ͕ ݄ʹఏҊ wJ04ͷ7*1&3ͳΜ͔ίϨ͕ݯྲྀ 55 Clean Architecture Clean Architecture
ʹ͍ͭͯ
56 Clean Architecture Clean Architecture ʹ͍ͭͯ
57 ͳΔ΄ͲɺΘ͔ΒΜɻ
58 ࢲͳΓʹղऍͯ͠Έͨ
wϨΠϠʔͷׂΛఆٛ͢Δ wϨΠϠͷΛ໌֬Խ wOBNFTQBDFͳͲͰ ͔Γ͘͢͢Δ 59 Clean Architecture Clean Architecture ʹ͍ͭͯ
wґଘͷϧʔϧΛकΔ wؔ৺ͷ͖Ұํ wݪଇతʹಉϨΠϠʔؒ ґଘͤ͞ͳ͍ wϨΠϠʔΛඈͼӽ͑ͳ͍ 60 Clean Architecture Clean Architecture
ʹ͍ͭͯ
wϨΠϠʔఆٛࣗ༝ wͱ͔ෆఆ wϓϩμΫτຖʹॊೈʹ wΓͳ͖Ό૿͢ 61 Clean Architecture Clean Architecture ʹ͍ͭͯ
wϨΠϠʔؒͷؔ৺Λ w40-*%ݪଇ wJOUFSGBDFΛ༻͍ͯ ۩Ϋϥεͷґଘഉআ w%FQFOEFODZ*OKFDUJPOT 62 Clean Architecture Clean Architecture
ʹ͍ͭͯ
wಉ৺ԁͷਤؔ৺ͷ͖ wଆ֎ଆΛΒͳ͍ w(BUFXBZT%#͕ Ͳ͏ͬͯσʔλΛ ѻ͏͔Βͳ͍ɺͱ͔ wσʔλͷྲྀΕผͷ͓ wӈԼͷਤ͕ιϨ 63 Clean Architecture
Clean Architecture ʹ͍ͭͯ
64 ΜͰ
65 ͜ΕΛ Unity ʢ͔ͬͯ C#ʣ Ͱ࣮ͯ͠Έͨ
w6OJUZςετʹ͓͚Δ՝ wૄ݁߹ͷجຊతͳߟ͑ํ w$MFBO"SDIJUFDUVSFʹ͍ͭͯ w$"'6ʹ͍ͭͯ 66 ͓͠ͳ͕͖
CAFU ʹ͍ͭͯ 67
w$MFBO"SDIJUFDUVSF'PS6OJUZͷུ wʮ͔;ʔʯͱಡΉ wώωϦ͕ͳ͍ͱ͔ݴΘͳ͍ɻ w.*5-JDFOTFͳ044 wIUUQTHJUIVCDPNVNNQSPKFDUTDBGV@DPSF 68 CAFU is Կʁ CAFU
ʹ͍ͭͯ
wجຊతʹJOUFSGBDFͷΈΛఏڙ w6OJUZͱର͢Δ্ͰඞཁʹͳΔ ΫϥεΛఏڙ wΩοζελʔͷΞϓϦ։ൃͰ ઈͬͯΔ 69 CAFU is Կʁ CAFU
ʹ͍ͭͯ
70 ϨΠϠʔఆٛ
71 ϨΠϠʔఆٛ CAFU ʹ͍ͭͯ
72 ґଘؔ CAFU ʹ͍ͭͯ
w.POP#FIBWJPVSͱର͠ ݟͨΛ࢘ΔϨΠϠʔ w1SFTFOUFSͷΈґଘՄ 73 Presentation / View CAFU ʹ͍ͭͯ
w7JFXͱ6TF$BTFΛܨ͙ϨΠϠʔ w6TF$BTFޙड़ wঢ়ଶΛ࣋ͨͳ͍ 74 Presentation / Presenter CAFU ʹ͍ͭͯ
wϏδωεϩδοΫͷ࣮ͦͷͷ wܭࢉॲཧͳͲΛ୲͏ wޙड़ͷ.PEFMͱͯ͠දݱ͞ΕΔ ঢ়ଶΛอ࣋ͨ͠Γ͢Δ 75 Domain / UseCase CAFU ʹ͍ͭͯ
wओʹ7JFXͰͷར༻Λతͱͨ͠ σʔλͷߏ w6OJ3YΛ௨ͯ͡7JFXʹૹΒΕΔ w3YετϦʔϜΛؚΊͨঢ়ଶΛཧ 76 Domain / Model CAFU ʹ͍ͭͯ
wޙड़ͷ&OUJUZͱ.PEFMͱΛ૬ޓม ͢ΔͨΊͷTranslate()ϝιουΛ උ͑Δ w֎෦༷ͷมߋΛ6TF$BTF7JFX ʹͤ͞ͳ͍ͨΊʹఆٛ 77 Domain / Translator CAFU
ʹ͍ͭͯ
w%BUBϨΠϠʔͱର͢ΔͨΊͷ ϨΠϠʔ wσʔλΛಡΈॻ͖͢ΔͨΊͷ ΠϯλϑΣʔεΛ࣋ͭ 78 Domain / Repository CAFU ʹ͍ͭͯ
wσʔλͷߏΛఆٛͨ͠ϨΠϠʔ wσʔλͷ࣮ମ͕ԿͰ͋Εɺ ߏදݱͱͯ͠ҰͭͷΫϥεͰද͢ w4DSJQUBCMF0CKFDU͕ϝϯυΠʜɻ 79 Data / Entity CAFU ʹ͍ͭͯ
wσʔλͷऔΓѻ͍Λ࣮ͨ͠ϨΠϠʔ w4DSJQUBCMF0CKFDUͱ͔ɺ 8FC"1*ܦ༝ͷ+40/ͱ͔ɺ 42-JUFܦ༝ͷσʔλͱ͔ɺFUD 80 Data / DataStore CAFU ʹ͍ͭͯ
wFOVNͱ͔DPOTUతͳΛཧ͢Δ ͨΊͷ"QQMJDBUJPOϨΠϠʔ w%*༻ͷ'BDUPSZΫϥεͱ͔Λ ֨ೲ͢Δ6UJMJUZϨΠϠʔ 81 ͦͷଞ CAFU ʹ͍ͭͯ
wམͪϞϊήʔϜΛྫʹղઆ wʙ৭ͷάϛ͕ ݸηοτͰམԼ wͭἧ͏ͱফ͑Δ wළͷ࠷্ஈ·Ͱୡͨ͠Β ήʔϜΦʔόʔ wͦͷ࣌ͷείΞΛه 82 ྫ͑ CAFU
ʹ͍ͭͯ
• Controller w γʔϯ੍ޚ w 1SFTFOUFSॳظԽ • Gummi w ߱ͬͯ͘Δάϛ
•Floor wϘτϧͷচ •Ceil wϘτϧͷఱҪ •Wall wϘτϧͷน 83 Presentation / View CAFU ʹ͍ͭͯ
w Gummiʹ.PDLΠϕϯτ͕ඈΜͰ͖ͨΒ .PDL1SFTFOUFSͷϝιου͕ݺΕΔ͔ʁςετ w .PDL1SFTFOUFSͷ3YετϦʔϜʹ ͕ྲྀΕ͖ͯͨΒWall͕ΤϑΣΫτΛ *OTUBOUJBUF͢Δ͔ʁςετ 84 Presentation /
View CAFU ʹ͍ͭͯ
•StagePresenter wγʔϯैଐ1SFTFOUFS 85 Presentation / Presenter CAFU ʹ͍ͭͯ
86 Presentation / Presenter CAFU ʹ͍ͭͯ w StagePresenterͷ֤ϝιουΛςετ w 6TF$BTFͷΠϯελϯεશͯ.PDL
w 1SFTFOUFSϨΠϠʔςετॻ͘ՁΊ
•GummiStateUseCase wεςʔδதͷάϛͷঢ়ଶ Λཧɾܭࢉ wάϛணˠ࠶ܭࢉͱ͔ wͪ͗Εఆͱ͔ •ScoreUseCase wಘΛཧɾܭࢉ •StageUseCase wεςʔδͷߏΛཧ wԿ৭ͷάϛΛग़͢ʁ
wམԼεϐʔυʁ 87 Domain / UseCase CAFU ʹ͍ͭͯ
88 Domain / UseCase CAFU ʹ͍ͭͯ w ֤6TF$BTFͷQVCMJDϝιουΛςετ w ೖྗग़ྗ1SJNJUJWFͳJOUFSGBDFΛ
௨ͯ͡ߦΘΕΔϋζ w ScoreUseCaseͷ&OUJUZ.PEFM.PDL͢Δ
•GummiModel wάϛҰͭΛදݱ w৭ͱ͔4UBUFͱ͔ •GummiMapModel wεςʔδͷશάϛใ •ForecastGummiModel w༧ࠂάϛͷঢ়ଶ •ScoreModel wݱࡏͷಘ •PointModel
wάϛফڈʹΑΔ֫ಘಘ 89 Domain / Model CAFU ʹ͍ͭͯ
90 Domain / Model CAFU ʹ͍ͭͯ w ͪΐͬͱͨ͠ͷՃॲཧͳͲΛߦ͍ͬͯΔ ߹ςετॻ͘ w
جຊతʹςετॻ͔ͳͯ͘Ϥαι
•GummiTranslator w4UBHF-FWFM&OUJUZͱ Ґஔ͔Β4DPSF.PEFM Λੜ •ScoreEntityTranslator w4DPSF.PEFMΛ 4DPSF&OUJUZʹม 91 Domain /
Translator CAFU ʹ͍ͭͯ
92 Domain / Translator CAFU ʹ͍ͭͯ w GummiModelTranslatorIStageLevelEntityΛ .PDLͯ͠Translate()Λςετ w
ScoreEntityTranslatorIScoreModelΛ .PDLͯ͠Translate()Λςετ
•ScoreRepository wείΞΛಡΈॻ͖ •StageLevelRepository wεςʔδͷάϛ৭ߏ ͳͲͷϚελΛऔಘ 93 Domain / Repository CAFU
ʹ͍ͭͯ
94 Domain / Repository CAFU ʹ͍ͭͯ w ScoreRepositoryIScoreModelͷ.PDLͰςετ w StageLevelRepositoryIStageLevelEntity
Ͱςετ
•ScoreEntity wεςʔδͷείΞ •ScoreMapEntity wશεςʔδͷείΞ •GummiPointMapEntity w࿈ຖͷ֫ಘϚελ •StageLevelEntity wεςʔδқఆٛ •StageLevelMapEntity wશεςʔδͷқ
95 Data / Entity CAFU ʹ͍ͭͯ
96 Data / Entity CAFU ʹ͍ͭͯ w .PEFMಉ༷ɺಛघͳϝιουΛੜ͍ͯ͠ͳ͍ ݶΓςετෆཁ
•ScriptableObjectDataStore wγʔϯதͷҙͷ ίϯϙʔωϯτ͔Β ࢀর͞ΕΔ 4DSJQUBCMF0CKFDU͔Β &OUJUZΛऔಘ •LocalStorageDataStore wϩʔΧϧετϨʔδʹ +40/ͱ͔Ͱ&OUJUZΛ อଘͨ͠ΓಡΜͩΓ
97 Data / DataStore CAFU ʹ͍ͭͯ
98 Data / DataStore CAFU ʹ͍ͭͯ w ScriptableObjectDataStore'JYUVSFγʔϯ ͔ΒͷΠϯελϯεऔಘΛςετ w
LocalStorageDataStoreҙͷ&OUJUZΛ ૬ޓʹಡΈॻ͖ग़དྷΔ͔Λςετ
99 σʔλͷྲྀΕ
wϘλϯ͕ΫϦοΫ͞ΕͯԿ͔ॲཧ͢Δ 100 σʔλͷྲྀΕ CAFU ʹ͍ͭͯ
wԿΒ͔ͷτϦΨʔͰঢ়ଶ͕มԽ 101 σʔλͷྲྀΕ CAFU ʹ͍ͭͯ
wλΠϚʔతͳ࣮ 102 σʔλͷྲྀΕ CAFU ʹ͍ͭͯ
wόφʔը૾Λαʔό͔Βऔಘ 103 σʔλͷྲྀΕ CAFU ʹ͍ͭͯ
wόφʔը૾ΛʹΩϟογϡ 104 σʔλͷྲྀΕ CAFU ʹ͍ͭͯ
wϚελσʔλΛ4DSJQUBCMF0CKFDU͔Βऔಘ 105 σʔλͷྲྀΕ CAFU ʹ͍ͭͯ
wϚελσʔλΛ4DSJQUBCMF0CKFDU͔Βऔಘ ʢϥΠτ൛ʣ 106 σʔλͷྲྀΕ CAFU ʹ͍ͭͯ
·ͱΊ 107
wૄ݁߹ͳΞϓϦέʔγϣϯΛ ߏங͢Δͱςετ͕͘͢͠ͳΔ w$MFBO"SDIJUFDUVSF͕Φεεϝ w$"'6ͬͯΈͯͶʂελʔśūŢŒţ 108 ·ͱΊ
109 Thank you for your attention!!