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
もしあなたがアウトゲーム(UI)を つくることになったら with Unity
Search
Masataka Kohagura
August 03, 2019
Programming
0
1.7k
もしあなたがアウトゲーム(UI)を つくることになったら with Unity
Masataka Kohagura
August 03, 2019
Tweet
Share
More Decks by Masataka Kohagura
See All by Masataka Kohagura
ローカライズシステムを作った話
masakoha
0
240
Other Decks in Programming
See All in Programming
両面どころかインフラもTSでできるよ ~ 全方位TypeScriptによるプロダクト開発 ~
myfinder
9
2.5k
TCA魔法学入門🪄
dazy
0
280
incrementalモデルの理解を深める
ikkimiyazaki
2
640
オブジェクト指向のリ・オリエンテーション~歴史を振り返り、AI時代に向きなおる~
hanyudaeiiti
2
170
複雑なドメインを扱うプロダクトの探索フェーズではいつどのようにテストをするのか / How to testing during exploratory phase
boykush
2
150
WasmOS: Wasmを実行する自作Microkernel
riru
0
370
LPIXEL×CADDi_kaerururu
kaerururu
3
300
Deep Dive 大規模システムアーキテクチャ/開発組織エンジニアリング / Deep Dive Large-Scale System Architecture, Development Organization Engineering
nrslib
15
2.9k
「コンパイル時のユニットテスト」導入するとユニットテストを 書かなくてよくなるのか?
tomohisa
9
2.2k
Kotlinを用いたDSL的な設計手法と使用上の注意
kohii00
3
530
Why 1 + 1 = 2 in Swift?
1plus4
1
250
品質とスピードを両立: TypeScriptの柔軟な型システムをバックエンドで活用する
kosui
5
1.1k
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
13
3.7k
The World Runs on Bad Software
bkeepers
PRO
60
6.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
343
19k
Designing the Hi-DPI Web
ddemaree
275
33k
How To Stay Up To Date on Web Technology
chriscoyier
781
250k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Rails Girls Zürich Keynote
gr2m
91
13k
Navigating Team Friction
lara
177
13k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
242
20k
Ruby is Unlike a Banana
tanoku
95
10k
Transcript
Έͳ͞ΜɺΞτήʔϜͮ͘ Γ͖Ͱ͔͢ʁ
ͦͦΞτήʔϜͬͯԿʁ
͋ΔήʔϜͷύʔτͷେ෦͕ 6*ʹΊΒΕ͓ͯΓɺͦΕΒ6* Λ৮Δ͜ͱʹΑͬͯԿ͔͠ΒͷΞ ΫγϣϯΛى͜͢ήʔϜύʔτͷ ૯শ ͱ೦ͷͨΊʹఆ͓ٛͯ͘͠ ࠓճͷΞτήʔϜͷఆٛ
6*ͷྔ͕ଟ͗ͯ͢େมʂ
͜ΕΛ࡞Δ͜ͱʹͳͬͨΒɺ· ͣԿΛߟ͑Δɾɾɾʁ
ࠓճɺͦΜͳ͓
͋͠ͳ͕ͨΞτήʔϜ 6* Λ ͭ͘Δ͜ͱʹͳͬͨΒXJUI6OJUZ ݹਖ਼ོ 4BU 6OJUZ6*ΤϯδχΞϦϯάษڧձ
ࣗݾհ w ݹਖ਼ོ ͙͜Β·͔ͨ͞ w !NBTBLPIB w ϑϦʔϥϯε ϲ݄
w ͷΜͼΓ͠ͳ͕Β౦ژ ήʔϜγϣʹ͚ͯΞ τήʔϜ6*ؚΊͨ ج൫ܥΛ࡞͍ͬͯ·͢
ࣗݾհ w ݄d݄ 7ϥΠόʔࢹௌΞϓϦ ʮ*3*".ʯΛ࡞͍ͬͯ ·ͨ͠ 6*पΓશൠ
ͲΜͳΛ͢Δͷ͔ w ΞτήʔϜΛ͔Β࡞͍ͬͯͬͨ w ։ൃ͔ΒӡӦ·ͰͷΞτήʔϜ࡞ͷྲྀΕͷ w ίʔυΛΰϦΰϦॻ͍ͯ6*Λ࡞͍ͬͯ͘ w V(6*ܥͷ΄ͱΜͲ͠·ͤΜ
͓ॻ͖ w ϓϩδΣΫτൃ࣌ʹ͓͖͍ͬͯͨ͜ͱ w 6*࣮ͷෳਓ։ൃͷޮԽ w ͨ͘͞ΜͷػೳΦʔϓϯιʔεϑϨʔϜϫʔ ΫΛͭͬͨ͘
ୈҰষ ϓϩδΣΫτൃ࣌ʹ͓ͬͯ ͖͍ͨ͜ͱ
*3*".࠷ॳظͷ w ࢲ*3*".ϓϩδΣΫτൃ࣌ʹࢀՃ w 6OJUZΤϯδχΞࢲؚΊͯਓ w ਓΩϟϥΫλʔͷϞʔγϣϯΛಈ͔͢ w ਓ௨৴෦ w
ਓΞΠςϜ࡞ σβΠφʔ݉ w ਓ6*શൠࢲ
6*Ұਓ͚ͩ
6*ͷਐঢ়گ
Ͳ͏࡞͍ͬͯ͜͏͔ w ࠷ॳ͔ΒϦϦʔε࣌ظ΄΅ܾ·͍ͬͯͨɻ w 6*ྔ͕ଟ͍ͷͰɺҰਓͰΔʹͯ͠શવ ͕࣌ؒΓͳ͍ 6*ਓһ૿ͯ͠ͱૣΊʹ૬ ஊ w
6*ਓһ݄ ݄ ݄ʹਓͣͭ૿͍͑ͯͬͨ w ͦΕ·ͰʹࣗͰ6*ܥͷڞ௨ج൫Λ࡞ͬͯɺͱ Γ͋͑ͣΨϫ͚ͩҰ௨Γը໘Λ࡞Δํʹ
࣮ΛਐΊΔલʹͨ͜͠ͱ w ༻ޠͷ౷Ұ w ίʔυنͷ౷Ұ w ಈ࡞ج४ͱಈ࡞ର w $BOWBT0SEFSͷઃఆ w
։ൃελΠϧͷ
༻ޠͷ౷Ұ w ༻ޠͷ౷Ұ w ϙοϓΞοϓ Ϟʔμϧ μΠΞϩά w Ϋϥε໊1SFGBC໊ʹؔΘΔͷͰɺܾΊͯ
͓͔ͳ͍ͱमਖ਼͕େม w ࣄΛ͖ͯͨ͠ڥ֤ʑʹΑͬͯҧ͏ɻಉ͡ ݴ༿Ͱҧ͏ҙຯΛ͍ࣔͯ͠Δ͜ͱ͋Δͷ ͰɺೝࣝΛ౷Ұ͓ͯ͘͠
ίʔυنͷ౷Ұ w ༻ޠͷ౷Ұͱಉ͡ w ༨ஊ͚ͩͲɺN@IPHFIPHFͱ໋໊͞ΕΔͱɺ ࢲͭΒ͍ ͭΒ͍
ಈ࡞ج४ͱಈ࡞ର w ݄࣌ɺJ1IPOF9ग़͍ͯͨͷ ͷɺ4BGF"SFBͷରԠͳͲʹ֤͕ࣾΘΕ͍ͯ ͨ࣌ظ w J1IPOF9ͷإೝࣝΛ༻͢ΔΞϓϦͳͷͰɺ J1IPOF9ͷղ૾Λج४ʹͨ͠6*Λ࡞Δ͜ͱ ʹ w
$BOWBT4DBMFSʹө
ಈ࡞ج४ͱಈ࡞ର w ͜ͷઃఆͰී௨ͷͩͱɺ্Լ͕ΕΔ ͜ͱΛߟྀͯ͠σβΠϯ͢Δඞཁ͕͋ΔͷͰɺ σβΠφʔͷํҙ
$BOWBT0SEFSͷઃఆ w 6*ͷϨΠϠʔΛܾΊͯ ͓͘ w 6*ͷཁૉʹɺͳʹ͔ Λදࣔ͢Δը໘͚ͩͰ ͳ͘ɺͦͷը໘ͷϒ ϩοΩϯάɺϙοϓ ΞοϓͳͲɺ༷ʑͳϨ
ΠϠʔ͕ଘࡏ͢Δ Canvas Order WarningBlocking 50 Warning 40 PopupBlocking 30 Popup 20 Blocking 10 جຊͷදࣔ 0
$BOWBT0SEFSͷઃఆ w "TTFU4UPSFͳͲͷ "TTFUʹɺV(6*Λར༻ ͨ͠"TTFU͋Δɻ w 43%FCVHHFSɺσόο άػೳΛ؆୯ʹ࣮Ͱ͖ Δ"TTFU w
༻͢ΔΞηοτʹΑͬͯ ɺ$BOWBT0SEFSͷઃ ఆ࣍ୈͰཁमਖ਼ Canvas Order SR Debugger 120 WarningBlocking 50 Warning 40 PopupBlocking 30 Popup 20 Blocking 10 جຊͷදࣔ 0
σβΠϯͷ w ͋Β͔͡Ί༷ʑͳཁૉΛ౷Ұ͓͍ͯͨ͠΄͏͕ Α͍ w ϑΥϯτ w Ϙλϯͷେ͖͞ w ্ԼࠨӈͷϚʔδϯ෯
w ৭ ͜ͷϓϩδΣΫτʹ͓͍ͯͷ$$
ୈೋষ 6*ͷ࣮ෳਓ։ൃͷޮԽ
.71ΞʔΩςΫνϟΛ࠾༻ w ղઆͯͨ͠Β͜Ε͚ͩͰ͕͔͔࣌ؒΓͦ͏ͳͷ Ͱɺ͓͢͢ΊͷղઆϖʔδΛҎԼʹ w ͋ΔఔͷറΓΛ͢Δ͜ͱʹΑͬͯɺʮͲ͏ ͬͯίʔυΛॻ͚͍͍ʁʯΛආ͚Δ w 8FCग़ͷ6OJUZΤϯδχΞʹΑΔେنήʔ Ϝͷج൫ઃܭ
$ZCFS"HFOU٢ IUUQTEFWFMPQFSTDZCFSBHFOUDPKQCMPH BSDIJWFT
ڞ௨ύʔπΛ࡞Δ w ֦ॖ͢ΔϘλϯΛ࡞Δ w ΤσΟλ֦ுͰV(6*ͷϘλϯͱಉ༷ʹΦϦ δφϧϘλϯ͕ੜ͞ΕΔΑ͏ʹ w V(6*ͷػೳ͚ͩͰɺΞχϝʔγϣϯΛ ͏͜ͱͰ࣮Մೳ͕ͩɺͳΔ͘ࢲͦͷ ΞχϝʔγϣϯίʔυͰॻ͖͔ͨͬͨͷͰ
6*#VUUPOΛ֦ு
ڞ௨ύʔπΛ࡞Δ w ී௨ͷΫϦοΫɺԡ͠ ͨͱ͖ɺͨ͠ͱ͖ɺ ԡͨ͠͠ͱ͖ʹରԠ
ڞ௨ύʔπΛ࡞Δ w ϙοϓΞοϓػೳͷ࡞ w ϙοϓΞοϓ༷ʑͳॴ͔ΒݺΕΔͷͰɺ 4JOHMFUPO.POP#FIBWJPVSΛܧঝͯ͠ 1PQVQ.BOBHFSΛͭ͘Δɻ w ίʔυΛղઆ͠Α͏ͱࢥ͚ͬͨͲɺ͔ͳΓΊΜ Ͳ͍͘͞ͷͰɺࡉ͔͍࣮ʹ͍ͭͯ࠙ձͷ
ͱ͖ʹͰ
ڞ௨ύʔπΛ࡞Δ
ը໘ભҠج൫Λ࡞Δ w γʔϯભҠը໘ભҠͷϑϨʔϜϫʔΫΛ࡞ͯ͠ɺ ͦͷ্ʹ༷ʑͳը໘Λ࣮͍ͯ͘͠ɻ w Ͳ͜ͷը໘ಉ͡Α͏ʹ࣮͕Ͱ͖ΔΑ͏ʹͳΔͷ Ͱɺ࣮͍ͯ͠ͳ͍ଞͷਓ͕ݟͯେମͷྲྀΕ͕Θ͔ Δɻ౷Ұײ͕ग़Δɻ w ʰ$MJPOFʱͱ͍͏Φʔϓϯιʔεͷը໘ભҠج൫࡞ͬ
ͯ·͢ɻ ͳ͓%PDVNFOU IUUQTHJUIVCDPN.BTB,PIB$MJPOFSFMFBTFT UBHW
ը໘ભҠج൫Λ࡞Δ ޙչ w *3*".ͰυϦϧμϯϏϡʔ J1IPOFͷઃఆ ը໘Έ͍ͨʹ۷ΓਐΜͰ͍͘ը໘ભҠ w ʰ$MJPOFʱʹ࣮ࡁΈ w
*3*".Ͱɺ৽نొը໘ͱઃఆը໘͕υϦϧ μϯϏϡʔ
ը໘ભҠج൫Λ࡞Δ ޙչ w ઃఆը໘ͷΨϫΛͯ͢࡞ΓऴΘͬͨͱ͖ʹ ʮ͋Εʁ͜Ε$MJPOFʹ͍࣋ͬͯͬͯϥΠϒ ϥϦԽͨ͠΄͏͕Α͘ͳ͍ʁʯߟ͑ͨ w ΛͬͯϥΠϒϥϦԽ։࢝ w ͦͷؒʹઃఆը໘͍Ζ͍Ζ࣮͞Ε͍ͯ͘
w ϥΠϒϥϦ͕ग़དྷͨ͋ͱʹ৽نొը໘Λͦͷ ϥΠϒϥϦͰ࣮
ը໘ભҠج൫Λ࡞Δ ޙչ w ઃఆը໘͜ͷϥΠϒϥϦʹҠߦ͠Α͏ͱܾҙ w ʮಠ࣮͕ࣗೖ͍ͬͯΔɾɾɾʯ ʮ͜ͷ௨৴ॲཧ͕Ҿ͖ണ͕ͤͳ͍ɾɾɾʯ ʮͱ͍͏͔ɺੲͷࣗͷιʔείʔυԚ͍ʯ
ը໘ભҠج൫Λ࡞Δ ޙչ
ը໘ભҠج൫Λ࡞Δ ޙչ w ݁ہࣙΊΔ·Ͱ͜ͷղܾͰ͖ͣ w ࠷ॳ͔ΒΒͳ͍ͱಠ࣮͕ࣗೖͬͯɺͲΜͲ ΜҠߦͰ͖ͳ͘ͳΔ
ୈࡾষ ͨ͘͞ΜͷػೳΦʔϓϯιʔ εϑϨʔϜϫʔΫΛ࡞ͬͨ
࡞ͬͨػೳ w $MJPOFը໘ભҠج൫ܥɾ6*ܥ w *DBSVTϩʔΧϥΠζγεςϜ w .714DSJQU(FOFSBUPS6OJUZ.71ύλʔϯ ͷιʔείʔυΛҰׅੜ
$MJPOF w IUUQTHJUIVCDPN.BTB,PIB$MJPOF w ୈೋষͰେମͨ͠ w ͜Ε͔Β6*ͷը໘ભҠͰϥΠϒϥϦԽͨ͠ ͍ͷ͕ग़͖ͯͨΒՃ͍ͯ͘͠༧ఆ
*DBSVT w IUUQTHJUIVCDPN.BTB,PIB*DBSVT w ϩʔΧϥΠζγεςϜ
*DBSVT w ॳظԽ࣌ʹ5BSHFU-BOHVBHFͱ%FGBVMU -BOHVBHFΛೖྗɻೖྗͨ͠ݴޠʹԠͯ͡ LFZʹର͢Δจݴ͕ग़ྗ͞ΕΔ w ΤσΟλ֦ுͰɺ,FZͷ&OVNΛੜ͢ΔΑ͏ ʹ͍ͯ͠ΔͷͰλΠϓηʔϑ
.714DSJQU(FOFSBUPS6OJUZ w Ϋϥε໊ΛೖΕΔͱɺ.PEFM7JFX1SFTFOUFS ͷͭͷ$ϑΝΠϧΛग़ྗͯ͘͠ΕΔΤσΟλ ֦ு w ͳΜͱOBNFTQBDFࣗಈతʹೖΕͯ͘ΕΔ Αʂ
֎ จࣈͷྗ
ࡢͷதௐࠪΛ͍ͯͨ͠ࢲ w ϑΠϩϯ͞Μ͔Βͷґཔ w Ϣʔβ͔ΒʮήʔϜΛ͢Δͱൃ͕͍͢͝ʯ w ࠷దԽͷґཔ
w IUUQ UBJZPQSPKFDUDP NTVLVNJ[V UFBTFSKB
%ήʔϜ w มͳίʔυͳ͍͠ɺϓϩϑΝΠϥΛோΊͳ͕ ΒεύΠΫ͋Δͱ͍͑Ͳͦ͜·Ͱॏ͘ͳ ͦ͞͏ͩ͠ͳΜͰͩΖ͏ͱᄬͬͯͨ w ·͊ͰεϚϗήʔϜͰॏ͘ͳΔͷͬͯɺίʔ υΑΓϨϯμϦϯά͕ॏ͍ͷ͕େ֓ͳͷͰɺ ͠Β͘'SBNF%FCVHHFSͳͲͰோΊଓ͚ͯ ͨ
w ͦͯ͋͠Δ͜ͱʹؾͮ͘
%ήʔϜ w ʮεΫϛζʯͷϗʔ Ϝը໘ w ͳΜ͔ҧײ
ҧײͷ൜ਓ w %ͷϗʔϜը໘ͳͷʹɺͳͥ5SJTLɺ 7FSUTL͋ΔΜͩɾɾɾʁ
൜ਓͷਖ਼ମ w ͳΜ͔จࣈͬΆ͍ۣܗ͕จࣈ͋ͨΓͷϙϦΰ ϯ͕ΊͬͪΌଟ͍
൜ਓͷਖ਼ମ w จࣈʹ0VUMJOFͱ 4IBEPXͰΤϑΣΫτ Λ͔͚ͯݟͯ͘͢͠ ͍ͨ w ϙϦΰϯ૿େͷཁҼ ͜Ε w
ςϥγϡʔϧϒϩάʹهࣄ͕͋ͬͨΑ ʲ6OJUZʳ5FYU.FTI1SPͷΞτϥΠϯɺV(6*ͷͱൺͯͱͯྑ͍ IUUQUTVCBLJUIBUFCMPKQFOUSZ
൜ਓʹࣄௌऔͯ͠Έͨ ˡલ ˣޙ
จࣈͷݟӫ͑ΛΑ͍ͨ͘͠ͳΒ w V(6*ͷ5FYUʹ4IBEPX0VUMJOFΛ͚ͭΔ ͱɺඳը͕͍ͨΜͳ͜ͱʹͳΔ w 5FYU.FTI1SPΛͳΔ͍ͬͯ͘͘ํ͕Α ͦ͞͏ w ϑΠϩϯ͞Μɺࢿྉఏڙ͋Γ͕ͱ͏͍͟͝·͢ʂ
Ұ௨ΓޠΓͬͨɾɾɾʁ w ·ͩ·ͩޠΓ͍ͨ͜ͱͨ͘͞Μ w ֆจࣈͷจࣈίʔυ Ϣʔβʹֆจࣈೖྗ ͤ͞Δͱେมͳ w *OQVUNVMUJ5PVDI&OBCMFEGBMTFʹͯ͠
ɺٖࣅతʹϚϧνλονͰ͖Δ w "VUP-BZPVUશʹཧղͨ͠FUDʜ
ଓ͖࠙ձͰΓ͔͚ͯͩ͘ ͍͞
·ͱΊ w ΞτήʔϜͮ͘Γྔͱͷઓ͍ w ਓ͕͍Ε؆୯ʹ্͍͚͛ͯΔ w ͕ɺ։ൃΛ্͛Δʹͯ͠ԼΛͭͬͯ͘ ͓͔ͳ͍ͱɺޮ͕ѱ͘ͳͬͯ͠·͏ w ͜ΕͰΈΜͳΞτήʔϜ͕͖ʹͳ͔ͬͨ
ͳʁ
5IBOLZPVGPS-JTUFOJOH