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
YAMAUCHI RYOGA
Search
Ryoga_Yamauchi
September 06, 2020
Technology
84
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
YAMAUCHI RYOGA
KC3のROOM2で発表した勉強会の資料です。
Ryoga_Yamauchi
September 06, 2020
More Decks by Ryoga_Yamauchi
See All by Ryoga_Yamauchi
Unity勉強会
ryogayamauchi
0
42
Other Decks in Technology
See All in Technology
Webの常識が通じないHTMLメールのダークモード
teamlab
PRO
0
130
AI × アーキテクト 第1・2章|生成AIの課題とアーキテクトの素養
daidaidai
0
170
Local CI × GitHub Actions
gogutan
2
210
分析AIエージェントを育てる、動く環境を育てる
codatum
1
1.1k
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
190
しろおびから始める!ログ活用の第一歩
shumei_ito
0
950
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
3
540
How to Design Configuration for Rails Applications
willnet
1
810
PagerDuty Tech Hub-鳴らすけれど、人は動かない
ezaki
0
170
re:Invent初参加で変わったこと、2回目にやってみたいこと(JAWS-UG彩の国埼玉 #12)
mhrtech
2
230
夫婦で子育てするための育児標準化
codmoninc
PRO
0
350
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
1
190
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
330
Speed Design
sergeychernyshev
33
2.2k
Amusing Abliteration
ianozsvald
1
350
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Optimising Largest Contentful Paint
csswizardry
37
4k
Mind Mapping
helmedeiros
1
400
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
410
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
What's in a price? How to price your products and services
michaelherold
247
13k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Transcript
6OJUZͰࠓ͙͑͢Δ5JQTɾίπ 3PPN 2020/9/5 13:30~ 学内勉強会
໊લɿࢁཾզ େֶɿژ࢈ۀେֶ ֶɿ ৬ɿిࢠܭࢉػԠ༻෦ɾओװ झຯɿόΠΫʢ43ʣ 6OJUZ ΫϥΠΞϯτΤϯδχΞʢࢤʣ ࣗݾհ !:BNBVDIJ@3ZPHB ࣗݾհ
࣍ ήʔϜΦϒδΣΫτͷࢀরͷऔΓํʢѻ͍ํήʔϜΦϒδΣΫτʣ • "DUJPOͷ͍ํ ೖग़ྗͷऔΓํ .7$ͷΓํʢϝΠϯʣ
γϯάϧτϯͷ͍ํ Φϒβʔόύλʔϯͷ͍ํ • 3Y • 6OJ5BTLʢ͕࣌ؒ͋Εʣ • %*ʢ͕࣌ؒ͋Εʣ お題:タイマーを作る
ήʔϜΦϒδΣΫτͷࢀরͷऔΓํ ʢਖ਼͘͠ήʔϜΦϒδΣΫτʢʹΞλον͞Ε͍ͯΔεΫϦϓτʣͷࢀরͷऔΓํʣ Έͳ͞ΜͲ͏ͬͯήʔϜΦϒδΣΫτͷࢀরΛऔಘ͍ͯ͠·͔͢ʁ
ήʔϜΦϒδΣΫτͷࢀরͷऔΓํ $VCFΛ࡞ͬͨ࣌ʹɺͲ͏ͬͯ$VCFΛεΫϦϓτͰૢΓ·͔͢ʁ
ήʔϜΦϒδΣΫτͷࢀরͷऔΓํ ΦϒδΣΫτͷࢠڙʹΦϒδΣΫτ͕͋Δ߹
ήʔϜΦϒδΣΫτͷࢀরͷऔΓํ (BNF0CKFDU'JOE ͍ͬͯ·ͤΜΑͶʜʁ
<4FSJBMJ[F'JFME>Λ͚ͭΔͱ ήʔϜΦϒδΣΫτଆ͔ΦϒδΣΫτΛͤΔ QVCMJDͰެ։͍͍͚ͯ͠ͲɺΑ͘ͳ͍ ήʔϜΦϒδΣΫτͷࢀরͷऔΓํ ΤσΟλ্͔ΒΦϒδΣΫτΛࢦఆͰ͖Δ
ΦϒδΣΫτͷࢀর͕औΕ͔ͨΒ ͏(BNF0CKFDU'JOE ͱ͔͠ͳ͍͍ͯ͘͡ΌΜɻ ήʔϜΦϒδΣΫτͷࢀরͷऔΓํ
λΠϚʔΛ࡞Δ
λΠϚʔΛ࡞Δ ͱΓ͋͑ͣɺΤσΟλ͔Βೖྗ͞ΕͨΛදࣔͯ͠ΈΔ
λΠϚʔΛ࡞Δ Ͱ͖ͨ
λΠϚʔΛ࡞Δ 4UBSU ʹؔΛՃ͠·͢ ඵͣͭσΫϦϝϯτͯ͠දࣔ දࣔ
λΠϚʔΛ࡞Δ ͏͍ͨ͝
λΠϚʔΛ࡞Δ λΠϚʔ͠·͕ͨ͠ɺ͜ΜͳཁٻΛ͞Ε·ͨ͠ɻ ͢·Μ͕ɺϘλϯ͔ΒىಈͰ͖ΔΑ͏ʹͯ͘͠Εʂ
λΠϚʔΛ࡞Δ ݴΘΕΔͱࢥͬͯઌʹ༻ҙͯͨ͠ΘʂΑ͔ͬͨʂ
λΠϚʔΛ࡞Δ ·͔͞ɺϘλϯҰͭͷػೳΛՃ͢ΔͷʹΤσΟλʔ͔Βࢦఆͯ͠·ͤΜΑͶʜ
λΠϚʔΛ࡞Δ ͜ΜͳؔΛ࡞ͬͯ0O$MJDL ʹࢦఆͯ͠ىಈ͢Δ σϝϦοτ • ࢦఆͨ͠ΦϒδΣΫτͷ͔ؔ͠ࢦఆͰ͖ͳ͍ • ͍͍ͪͪΤσΟλʹͬͯࢦఆ͠ͳ͍ͱ͍͚ͳ͍
λΠϚʔΛ࡞Δ PO$MJDL"EE-JTUFOFSΛ͓͏ʂ ΫϦοΫ͞Εͨ࣌ͷॲཧΛࣄલʹొ͍ͯ͠Δ Ҿ"DUJPOܕɻ ϝϦοτ • 0O$MJDLͷϝιουΛQSJWBUFʹͰ͖Δ • ΤσΟλʔʹͬͯઃఆ͠ͳ͍͍ͯ͘ •
ଞͷΦϒδΣΫτͷؔΛࢦఆͨͯ͘͠ɺ͜͜Ͱ͍͍ͤ
λΠϚʔΛ࡞Δ "DUJPOͱɺϝιουࢀরͷ͜ͱʢίʔϧόοΫͱͯ͠͏͜ͱଟ͍ʣ ϝιουΛมతͳײ͡ͰͤΔɻ ྫ͑ɺఢΩϟϥΛͨ࣌ͪ͠ΌΜͱΞχϝʔγϣϯΛऴ͔͑ͯΒϓϨΠϠʔʹܦݧΛೖΕ͍ͨͱ͔
λΠϚʔΛ࡞Δ ྫ͑ɺఢΩϟϥΛͨ࣌ͪ͠ΌΜͱΞχϝʔγϣϯΛऴ͔͑ͯΒϓϨΠϠʔʹܦݧΛೖΕ͍ͨ࣌
λΠϚʔΛ࡞Δ ϓϨΠϠʔ͕͍Δͱͯ͠ɺ μϝʔδΛ৯ΒͬͨΒ͕࣌ؒ̎ඵݮΔػೳ͕ཉ͍͠Μ Ϙλϯ͔ΒىಈͰ͖ΔΑ͏ʹͳΓ·͕ͨ͠ɺ͜ΜͳཁٻΛ͞Ε·ͨ͠ɻ
λΠϚʔΛ࡞Δ ͦΜͳΜ؆୯ɺμϝʔδड͚ͨ࣌ʹ̎ඵ͕࣌ؒݮΔΑ͏ʹ͢Ε͑͑Μɻ
λΠϚʔΛ࡞Δ ը໘Λ࡞ͬͯɺϓϩάϥϜΛ࣮͠·͢ɺ
λΠϚʔΛ࡞Δ ͖ͬ͞ͱಉ͡Α͏ʹɺ1MBZFSʹ5JNFS7JFXͷࢀরΛ࣋ͨͤͯ͋͛Ε͍͍ͶΜɻ
λΠϚʔΛ࡞Δ Ͱ͖ͨ
λΠϚʔΛ࡞Δ ͜͜Ͱٙʹࢥͬͯཉ͍͜͠ͱ • 1MBZFS7JFXͬͯɺ1MBZFSΛ੍ޚ͢ΔϓϩάϥϜͷͣͳͷʹ5JNFS7JFX·Ͱ࣋ͬͯΔʜ • <4FSJBMJ[F'JFME>Ͱऔಘ͖͚ͯͨ͠ͲɺͦΕ͕Ͱ͖ͳ͍߹ͳ͍ͷʜ ͋ΔɻϓϩάϥϜ͔Βࣗಈੜͨ͠߹ҧ͏ํ๏Ͱ͞ͳ͍ͱ͍͚ͳ͍ɻ 1MBZFS5JNFSͷใΛ͖࣋ͭͰͳ͍
.7$ͱ .7$ͷ֓೦͕ొ͢Δ • 1MBZFSͷ֓೦ࣗମΛϨΠϠʔʹ͚Δ • ඳը 7JFX • ଞͷίϯϙʔωϯτͱͷΓऔΓ $POUSPMMFS
• σʔλ .PEFM Model View Controller $POUSPMMFSͰ੍ޚ͢Δ͜ͱʹΑͬͯɺ1MBZFS7JFXࣗମ5JNFSͷࢀরΛ࣋ͨͳͯ͘ྑ͘ͳΔɻ Hp:10 At:5 Df:3
.7$ͱ .7$ʹछྨ͕͋Δ Push MVC Pull MVC 引⽤:http://super-apparel-engineer.hatenablog.com/entry/2016/10/11/102637
.7$ͱ ᶃೖྗʢμϝʔδʣ Model View Controller Player Model View Controller Timer
ᶄ5JNFSΛ̎ඵݮΒ͍ͨ͠ ᶅ̎ඵݮΒ͢ ᶆ7JFXʹมߋΛ௨ ᶇλΠϚʔͷඵΛඳը
λΠϚʔΛ࡞Δ 1MBZFSͷϓϩάϥϜΛ࡞Δ ੜ࣌ʹ$POUSPMMFSੜ .PEFMੜ 5JNFSΛݮΒ໋͢ྩ
.7$ͱ 5JNFSͷϓϩάϥϜΛ࡞Δ 7JFX͕ެ։͍ͯ͠Δͷ6QEBUF5JNFϝιου͚ͩ $POUSPMMFS7JFXͱ.PEFMͷհ .PEFMϏδωεϩδοΫΛॻ͍ͯΔ͚ͩ ςετ͕ॻ͚ΔΑ͏ʹͳΔͷ͕ϝϦοτ
.7$ͱ ᶃೖྗʢμϝʔδʣ Model View Controller Player Model View Controller Timer
ᶄ5JNFSΛ̎ඵݮΒ͍ͨ͠ ᶅ̎ඵݮΒ͢ ᶆ7JFXʹมߋΛ௨ ᶇλΠϚʔͷඵΛඳը .PEFM͕มߋ͞Εͨ࣌Ͳ͏ͬͯ$POUSPMMFSʹ௨͢Δͷʁ Ͳ͏ͬͯ1MBZFSͷ$POUSPMMFS͔Β5JNFSͷ.PEFMͷࢀরΛͱͬͯ͘Δͷʁ
.7$ͱ Ͳ͏ͬͯ1MBZFSͷ$POUSPMMFS͔Β5JNFSͷ.PEFMͷࢀরΛͱͬͯ͘Δͷʁ Model View Controller Model View Controller Player Timer
GameModel .PEFMͷࢀরΛ౷ׅ͢ΔΫϥε γϯάϧτϯͰӡ༻͢Δ߹͕ଟ͍
γϯάϧτϯͱ GameModelがそれぞれのインスタンスを持っている Staticなのでゲームモデル⽣成時にInstanceも⽣成 GameModel.Instanceで参照をとってこれる これで他のゲームオブジェクトのModelをいじれるようになった
.7$ͱ ᶃೖྗʢμϝʔδʣ Model View Controller Player Model View Controller Timer
ᶄ5JNFSΛ̎ඵݮΒ͍ͨ͠ ᶅ̎ඵݮΒ͢ ᶆ7JFXʹมߋΛ௨ ᶇλΠϚʔͷඵΛඳը .PEFM͕มߋ͞Εͨ࣌Ͳ͏ͬͯ$POUSPMMFSʹ௨͢Δͷʁ
*0CTFSWFSͱ .PEFM͕มߋ͞Εͨ࣌Ͳ͏ͬͯ$POUSPMMFSʹ௨͢Δͷʁ "0CTFSWFSύλʔϯΛ͏ Subject Observer ᶃΠϕϯτͷൃߦ ᶄΠϕϯτͷߪಡ ͕มߋ͞ΕͨΑʂ௨ग़͢ ͦͷͰ7JFXΛมߋ͢ΔΑ͏ʹઌʹॲཧ ొ͠ͱ͔͘Β࣮ߦͯ͠Ͷʂ
*0CTFSWFSͱ TimerView TimerModel TimerController ˢ0O6QEBUF5JNF ʹͳͬͯΔ ˢ5JNFS$POUSPMMFSͷίϯετϥΫλͰ 4VCTDSJCF ߪಡ ॲཧͷొ
Λ͍ͯ͠Δ 4VCKFDU Πϕϯτൃߦଆ Λ࡞Δˠ *PCTFSWBCMFͰ4VCTDSJCFΛެ։͍ͯ͠Δˠ 4VCKFDU0O/FYU Ͱ௨Λग़͍ͯ͠Δˠ
*0CTFSWFSͱ ͜Εɺ͍ΘΏΔ3Y 3FBDUJWF&YUFOUJPOT తͳߟ͑ํʹͳ͍ͬͯ͘ΜͰ͚͢Ͳ 6OJUZʹඪ४Ͱ࣮͞Ε͍ͯΔͷʹ4VCKFDUͱ͔͕ͳ͍ʢࣗલͰ࣮͠ͳ͍ͱ͍͚ͳ͍ʣ ʢFWFOUͱ͔EFMFHBUFͱ͔͋Δͦͬͪ͠ͰͰ͖Δ͚Ͳ6OJ3YΛਪ͍ͨ͠ʣ IUUQTHJUIVCDPNOFVFDD6OJ3YSFMFBTFTEPXOMPBE6OJ3YVOJUZQBDLBHF ͜ͷϥΠϒϥϦɺ4VCKFDU͔Β3FBDUJWF1SPQFSUZɺ.FTTBHF#SPDLFSɺͦͷଞॾʑ࣮͞Ε͍ͯΔͷͰɺ σβΠϯύλʔϯͷษڧΛͯ͠ɺਖ਼ղΛ͜ͷϥΠϒϥϦͰ͑߹Θͤ͢Δͷ͍͍͔
*0CTFSWFSͱ ͜ͷϥΠϒϥϦͷ࡞ऀOFVF͞Μ • 6OJ5BTL • .BHJD0OJPO • .BTUFS.FNPSZ • ;4USJOH
.7$ͱ ᶃೖྗʢμϝʔδʣ Model View Controller Player Model View Controller Timer
ᶄ5JNFSΛ̎ඵݮΒ͍ͨ͠ ᶅ̎ඵݮΒ͢ ᶆ7JFXʹมߋΛ௨ ᶇλΠϚʔͷඵΛඳը 0CTFSWFS γϯάϧτϯ ࣮Ͱ͖ͨ
*0CTFSWFSͱ
*0CTFSWFSͱ ·ͱΊ • ڞಉ։ൃ͢ΔͨΊʹɺΞʔΩςΫνϟʢ.7$ͳͲʣ͕ඞཁͳ߹͕͋Δɻ • ΞʔΩςΫνϟΛ࡞ͬͨ͜ͱʹΑͬͯԿ͔͕Ͱ͖ͳ͘ͳΔ࣌ɺσβΠϯύλʔϯͰղܾͰ͖Δ͔ߟ͑Δ • ΦϒδΣΫτͷৼΔ͍Λߟ͑ͯίʔυΛॻ͘ • ͜ͷΦϒδΣΫτ͕͢Δ͖ͳͷදࣔɻϩδοΫ͖࣋ͭͰͳ͍ͱ͔ɻ
• γϯάϧτϯΛͬͯΈΔ • ͍ํ༻్ଞʹ͋Δ͚Ͳɺଟ༻ېࢭ • ΦϒβʔόύλʔϯΛͬͯΈΔ • ͍ॴΛߟ͑ͳ͍ͱεύήοςΟίʔυʹͳΔ߹͕͋Δ • ͬͯ์ஔ͍ͯ͠ΔͱϝϞϦϦʔΫ͢ΔՄೳੑ͕͋Δ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ
6OJ5BTL 6OJ3Y"TZOD ඇಉظͷϥΠϒϥϦ • *FOVNFSBUPSͷΘΓ • BXBJUBTZODͰ੍ޚͰ͖Δ6OJ5BTLΛൃߦͰ͖Δ $PSPVUJOF 6OJ5BTL ΫϦοΫͪΛBXBJUͰ͖Δ
888ΛBXBJUͰ͖Δ $PSPVUJOFΛBXBJUͰ͖Δ
6OJ5BTL 6OJ3Y"TZOD ଞʹ͍Ζ͍ΖͱBXBJUͰͭ͜ͱ͕Ͱ͖Δ 4UBUF͕USVFͷؒͭ ͕มԽ͢Δ·Ͱͭ ෳͷ6OJ5BTLΛͭ Ωϟϯηϧॲཧ͕ΊΜͲ͍͘͞σϝϦοτ͋Δʜ $PSPVUJOFͩͱ.POPCFIBWJPVS͔Β͔͠ىಈͰ͖ͳ͍͚Ͳɺ 6OJ5BTLͦ͏͡Όͳ͍͔ΒΩϟϯηϧࢭΊΔλΠϛϯάΛ ཧ͠ͳ͚ΕͳΒͳ͍ɻ
ޮΑ͘ͳΔ͚ͲɺϝϞϦϦʔΫͷՄೳੑ্͕Δ
%* %FQFOEFODZ*OKFDUJPO ઃܭਤΛίϯςφʹ͓ͯ͘͠ Container PlayerView PlayerController ᶃ1MBZFS$POUSPMMFSΛίϯςφʹొʂ ᶄ1MBZFS$POUSPMMFS͍ͩ͘͞ʂ ᶅͲ͏ͧʂ
%* %FQFOEFODZ*OKFDUJPO ˢઃܭਤΛίϯςφʹ͓ͯ͘͠ <*OKFDU>Ͱ1MBZFS$POUSPMMFSΛˠ ड͚औΔ ࣗͰੜ͠ͳͯ͘Α͘ͳΔ ϝϦοτ • ςετ͕ॻ͖͘͢ͳΔ •
Πϯελϯεͷཧ͕͘͢͠ͳΔ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ