ãã¬ããŒããã¯ã©ã€ã¢ã³ããšã³ãžãã¢ãèªããã²ãŒã éçºæè¡å匷äŒïŒ - KLab TECH Meetup #2 -
2017幎12æ26æ¥ïŒç«ïŒ19æ20åãããã¯ã©ã€ã¢ã³ããšã³ãžãã¢ãèªããã²ãŒã éçºæè¡å匷äŒïŒããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ãéçšãæ°ããæè¡å°å ¥ãªã©æ§ã ãªåçµäºäŸãã話ãããŸã- KLab TECH Meetup #2 -ããéå¬ãããŸããã
çŽ3ã¶ææ¯ãã®éå¬ãšãªã£ããKLab TECH Meetupããååãšåæ§ã«åå ç³ãèŸŒã¿æ ïŒ100åïŒã¯ããã«æºåžãè¿ããŸããã

åœæ¥ã®ç»å£è ãšè¬æŒã®ããŒãã¯äžèšã®éãã§ãã
ãã·ãŒã³é·ç§»ã®æé©åãšå®è£
ããããŒã«ç޹ä»ã
KLabæ ªåŒäŒç€Ÿ 倧éå貎人ãã
ãUnityã§ã®å€§èŠæš¡éçºã¢ãŒããã¯ãã£ã
KLabæ ªåŒäŒç€Ÿ 现éç« å¹³ãã
ããªã¢ã«ã¿ã€ã ãªããã·ã³ã¯å®çŸ é«å質xçãšãã®å®è£
ææ³çŽ¹ä»ã
KLabæ ªåŒäŒç€Ÿ é¶éãã
ãã¢ã»ãããã³ãã«ã«é¢ãã詊è¡é¯èª€ã®è©±ã
KLabæ ªåŒäŒç€Ÿ çåæéЬãã
ããªãºã ã²ãŒã ã®ããã®ããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã
KLabæ ªåŒäŒç€Ÿ äžå³¶å°æµ©ãã
ããã§ã¯å 容ã玹ä»ããŸãïŒ
ã·ãŒã³é·ç§»ã®æé©åãšå®è£ ããããŒã«ç޹ä»
æåã®ç»å£ã¯å€§éããã§ãã

倧éå貎人ïŒããã®ã»ãããšïŒïŒKLabæ ªåŒäŒç€Ÿ ã¯ã©ã€ã¢ã³ããšã³ãžãã¢ãåŠçæä»£ã¯OSSã²ãŒã éçºã«ã³ããããã²ãŒã äŒç€Ÿã§ãªãŒããšã³ãžãã¢ãåããåŸã2015幎ã«KLabãžå
¥ç€Ÿããªãºã ã²ãŒã 奜ãã

倧éããã¯èªèº«ãéçºãæ åœãã3Dã¢ã¯ã·ã§ã³ã²ãŒã ã«ãããŠè¡ãªã£ããã¥ãŒãã³ã°ã«ã€ããŠç޹ä»ããŸãã
倧éããã¯ãŸããåºç€ç¥èããåŠã³ãŸããã
ããšãããããããã¡ã€ã©ã䜿ã£ãŠã¿ãããæççã«æ€çŽ¢ããŠæ å ±ãåŸãããšããªãéå¹çãªè©Šã¿ãããŠããŸãããããã仿¯ãè¿ã£ãŠã¿ããšããUnityãã®æ§ã ãªå ¬åŒããã¥ã¡ã³ããèªãã¹ãã§ãããçŸåšã¯å ¬åŒããã¥ã¡ã³ãããšãŠãå å®ããŠããã®ã§ããã£ããèªã¿ããããšã¯éèŠã ãšæããŸãã
æšæºã®ãããã¡ã€ã©ãŒã䜿ããšãã¯ãã°ãåããªããšãã€ãºã«ãªã£ãŠããŸã£ããããProfiler.maxNumbersOfSamplesPerFrameãããããã£ãèšå®ããããšãå¿ èŠã§ããïŒå€§éããïŒ
ç¶ããŠå€§éããããéçºãæ åœããæ¡ä»¶ã§å®éã«æ¹åã宿œããïŒã€ã®äºäŸã玹ä»ãããŸããã
課é¡1ïŒã·ãŒã³åãæ¿ãæã«è¡ãããéä¿¡åŠçã®çµæã®è¿ããé ã
ããããŸã§ã¯ã·ãŒã³ã®é·ç§»ãéå§ãããéããã§ãŒãã¢ãŠããçµäºããåŸã«ã·ãŒã³ãããŒããããã®ã·ãŒã³ãåæåããããã«éä¿¡ãæãã§ããŸãããããã«ãã®ãµãŒããŒãããŸãéããªããšããåé¡ããããŸããã
ããã§ãã·ãŒã³ã®é·ç§»ã決å®ããæç¹ã§å³åº§ã«ãªã¯ãšã¹ããæããã·ãŒã³ã®ããŒããçµäºããã¿ã€ãã³ã°ã§ã¬ã¹ãã³ã¹ããããããã«å€æŽããŸãããããã«ããç»é¢ã®ãã§ãŒãã€ã³ããã§ãŒãã¢ãŠããšã·ãŒã³ã®ããŒãæéãéä¿¡åŸ ã¡ã«å²ãäžããããšãã§ããã®ã§æ¹åã«ã€ãªãã£ãŠããŸããïŒå€§éããïŒ
課é¡2ïŒãã¹ã¿ããŒã¿ãžã®ã¢ã¯ã»ã¹ãé ããã¿ãŒã³ãããã€ããã
ãããã£ã©ã¯ã¿ãã¹ã¯ã©ã¹ããã¯ãšã¹ããã¹ã¿ã¯ã©ã¹ããªã©ã®ãã¹ã¿ã¯ã©ã¹ã«ã¯ææžãã®ã¡ãœãããå®çŸ©ãããŠããŸããããã®ãããã£ãã·ã¥ã«ä¹ã£ãŠããªãã£ããããã£ãã·ã¥ã«ä¹ã£ãŠããã®ã«äœ¿ã£ãŠããªããšããã±ãŒã¹ããããŸããã
ãã®ç¶æ³ãæ¹åããããã«ãŸããã£ãã·ã¥ã®æ©æ§ãäœã£ãŠå ±éåéšåãå®è£ ããŸãããã®åŸãããªãéã¯ãã£ãã®ã§ããã²ãšã€ãã€ã³ãŒãã粟æ»ããå ±éååŠçã«å·®ãæ¿ããŠãããŸãããã¹ããã¯ã®äœã端æ«ã§ã¯é·ç§»ã1ç§ä»¥äžéããªãããšããããŸãããïŒå€§éããïŒ
課é¡3ïŒãInstantiateããé ããã¿ãŒã³ããã
ãäŸãã°ã¯ãšã¹ãéžæç»é¢ã«ã¯ã¯ãšã¹ãããšã®ãªããžã§ã¯ããããã®ã§ãããéã¢ã¯ãã£ããªæŒåºãå€ãå«ãŸãããããã«çæã«æéãæãã£ãŠãããã§ãã
ãã®æŒåºãå¥ã®ãPrefabãã«åãåºãããšã§ãã¯ãšã¹ãéžæç»é¢ã®é床ã¯1.3åã«æ¹åããŸãããïŒå€§éããïŒ
課é¡4ïŒæååã®ããŒã¹åŠçãé ã
ããŸããjsonãã®æšæºã©ã€ãã©ãªãStringReaderãã䜿çšããŠããéšåãé ãã£ãã®ã§ãèªåã§ãreaderããæžããŠã¹ããŒããé«ããŠããŸãã
ãŸããã¡ããæšæºã©ã€ãã©ãªã®ãDateTime.Parseãã«æéãæãã£ãŠããã®ã§ããã©ãŒããããããã£ãŠãããã¹ã¿ãŒããŒã¿ãŸãããªã©ã«ããããåœãŠãŠæ©ãããŠããŸãã
ãããã®çµæãäžçªå¹æçã ã£ãã·ãŒã³ã§ã¯åã®é床ãéæããããšãã§ããŸãããïŒå€§éããïŒ

ããã«å€§éããã¯æ¹åã«å©çšããããŒã«ãå ±æã
ããã®æ¡ä»¶ã§ã¯1è¡å€ããã ãã§ã³ã³ãã€ã«ã«2åãæãã£ãŠããŸãããšããããæ°è»œã«è©Šè¡é¯èª€ãã§ããªãç¶æ³ã§ãããããã§ãçã£ããã¡ã€ã«ã ã奜ããªã¿ã€ãã³ã°ã§ã³ã³ãã€ã«ããŠå®è¡ããã©ã³ã¿ã€ã ã³ã³ãã€ã©ãäœããŸããã
ãŸãããã£ããããŒã«ãSlackãã«å¯ŸããŠAPIãæäŸãããSlack.csããšããã¯ã©ã¹ãäœã£ãŠããŸããã¹ã¯ãªãŒã³ã·ã§ããããã€ããªãç°¡åã«éããç¹ããç¹ã«èª¿æ»æ®µéã§ã¯ããã£ãã§ããã
ä»ã«ã¯ã²ãŒã å ãå šãŠèªåã§åã£ãŠããããããã°æ©èœãæ€èšŒçšã®ããã°ã©ã ãä»»æã®ã¿ã€ãã³ã°ã§å®è¡ã§ããæ©èœãäœã£ãŠããã£ããšæããŠããŸããïŒå€§éããïŒ
æåŸã«å€§éããã¯ãåœããåã®ããšãåœããåã«ããã°ãã·ãŒã³é·ç§»ã¯ãã¡ããšæ©ããªããŸãããããŒã«ãäœã£ãŠéçºãèšæž¬ã®å¹çããããããšã¯ãšãŠãéèŠã ãšæããŸãããšãŸãšããŸããã
Unityã§ã®å€§èŠæš¡éçºã¢ãŒããã¯ãã£
2人ç®ã®ç»å£è ã¯çްéããã§ãã

现éç« å¹³ïŒã»ãã®ã»ããããžãïŒïŒKLabæ ªåŒäŒç€Ÿ ã¯ã©ã€ã¢ã³ããšã³ãžãã¢ãåŒççåºèº«ãæ±äº¬é»æ©å€§åŠåã2013å¹Žã«æ°åã§KLabãžå
¥ç€Ÿãåé³ãã¯å¥œãã

现éããã¯èªèº«ãåããŠåãçµãã ãUnityãã§ã®å€§èŠæš¡éçºã¢ãŒããã¯ãã£ã«ã€ããŠçºè¡šããŸããã
ã以åã瀟å ã«ã¯ãUnityãã§æšæºåãããã¢ãŒããã¯ãã£ã¯ãããŸããã§ããããããã人ã«ãã£ãŠå®è£ æ¹æ³ãããªãç°ãªããã³ã³ããªã¯ããå€çºããã®ã§äœæ¥ã¯ä»ã®ã¡ã³ããŒã«äŸåããã¡ã«ãªã£ãŠããŸããŸãããŸããã¯ã©ã€ã¢ã³ããšãµãŒããŒã§åäžã®ããžãã¯ãååšããåæ åœãåå¥ã«å®è£ ããŠããç¶æ ã§ããã
ããã§ãã¯ã©ã€ã¢ã³ããšãµãŒããŒã§çµ±åãã¹ãã宿œãã€ã€ãä»äººã«äŸåããã«éçºã§ããããã«ããããšèãããã§ããïŒçްéããïŒ
现éããã¯ã¯ã©ã€ã¢ã³ããšãµãŒããŒã®çµ±åãã¹ããå®çŸããããã«å®æœãã2ã€ã®åãçµã¿ã«ã€ããŠèª¬æããŸããã
åãçµã¿1ïŒããžãã¹ããžãã¯ãšãUnityãã®åé¢
ãçµ±åãã¹ããè¡ãªãããã«ã¯ããUnityãã«äŸåããªãå°ããªã¯ã©ã€ã¢ã³ãããŸãå¿ èŠã ãšèããŸããããããŠãã¹ããã¹ãç®æã¯ããžãã¹ããžãã¯ã«éå®ããŸãããViewãã¯å€æŽãå ¥ããã®ãªã®ã§ãæåžžçãªãã¹ãã®å¯Ÿè±¡ã«ã¯ããŠããŸãããããã«å€éšãšã®äŸåãæå°ã«ãªãããã«ãWrapperãã眮ãããã«ããŠããŸãã
次ã«ãã¹ãæ§æã«ã€ããŠã§ããããµãŒããŒãšã®çµ±åãã¹ãã®å Žåã«ã¯ã¢ãã¯éä¿¡ã©ã€ãã©ãªãåœãŠãŠãã³ã³ãã€ã«ããã¯ã©ã€ã¢ã³ãã䜿ããŸãããServerTestãæã«ã¯ãGameServerããšã¯ã©ã€ã¢ã³ããåç §ãããã¹ãããŒã¿ãå ¥ã£ããSQLiteããã¡ã€ã«ãçæããŸããããServerTestããããžãã¹ãããžã¯å ã®ãUseCaseããå®è¡ããæçµçãªã¯ã©ã€ã¢ã³ãã®ç¶æ ãæ£ããããæ€èšŒããŸãã
ããã«ããçµ±åãã¹ããã§ããããã«ãªããŸããããå®éã«ã¯ã©ã€ã¢ã³ããã€ãªãããããã«ã¯ãŸãã¢ãã¯ã ã£ãéä¿¡ã©ã€ãã©ãªã眮ãæããŸãããããŠããšã³ããªãã€ã³ããViewãããªã¬ãŒãšãããPresenterãã«å·®ãæ¿ãããSqliteããå®éã®ãã¹ã¿ããŒã¿ã«çžåœãããã®ãžçœ®ãæããããã§ããïŒçްéããïŒ
现éããã¯ããžãã¹ããžãã¯ãåé¢ããããšã§å®çŸã§ããããšãšããŠã次ã®3ç¹ãæããŸããã
- ããžãã¹ããžãã¯éšåã¯ãã¹ããå¯èœãªç¶æ ãç¶æã§ãããããã¯ã©ã€ã¢ã³ããšãµãŒããŒã§ç¶æ ã®éãã«èŠããå¿ èŠããªããªã
- åé¢ããããšã§ãUnityãã®ç¥èããªããŠããC#ã®åºç€ç¥èã§ããžãã¹ããžãã¯éšåãå®è£ ã§ãã
- å®è£ èŠä»¶ã«ããžãã¹ããžãã¯ã®åé¢ãšãã匷ãçžããã§ããããããPresenterããšãDomainããæç¢ºã«åããããåäœãã¹ããç°¡åã«ã§ããç¶æ ã«ãªã£ã

åãçµã¿2ïŒã€ãã³ãé§åãç®æã
ããUnityãã®å®è£ ãããŠãããšãViewãå士ãäŸåãåããŸããäŸãã°ãã·ãŒã³Aã®äœæ¥ãçµãããŸã§ã·ãŒã³Bã®å®è£ ãåºæ¥ãªãããšããç¶æ³ã«ãªããã·ãŒã³Aãšã·ãŒã³Bã®æ åœè ãç°ãªããšå€§å€ã§ããããŒã¿çã«ãã¯ãŒã¯ãããŒçã«ãã€ããç°å¢ã§ããã
ãã®èª²é¡ã解決ããããã«ã€ãã³ãé§åå®è£ ã«åãçµã¿ãŸãããŸãã¯ããŒã¿ã®æµããäžæ¹åã«ããŠãã¬ã€ã«ããŸããããŸããããžãã¹ããžãã¯åŽã¯ãã£ãã·ã¥ãããå€ã«å€æŽãããã°ãPresenterãã«éç¥ããä»çµã¿ãã€ãããŸãããïŒçްéããïŒ
ãã®ã€ãã³ãé§åãå®è£ ããããšã§å®çŸããã®ã¯äžèšã®3ç¹ã§ãã
- ããžãã¹ããžãã¯ã®ãInterfaceãããå®çŸ©ããŠããã°ãæ®ãã®å®è£ ã¯åŸåãã«ããããšãã§ããããã«ãªã£ã
- åãViewãã®æŽæ°ãã€ãã³ãã«ä»»ããããããã«ãªã£ãããšã§äŸåãæžãããViewãã现ããåå²ã§ããããã«ãªã£ã
- ãViewãã现ããåå²ã§ããããã«ãªã£ãçµæãããžãã¹ããžãã¯ãè§ŠãåŽã®ãViewããšã衚瀺ããã ãã®ãViewãã§ã®äœæ¥ã®åå²ãå®çŸãã
æåŸã«çްéããã¯ãå°å ¥æã«ããã©ãã£ãç¹ããæ¯ãè¿ãè¬æŒãçµããŸããã
ããããã€ãã³ã
é¢é£ããã€ãã³ã

ã人æ°ã«ã€ã墿 ïŒ50â100åãã¯ã©ã€ã¢ã³ããšã³ãžãã¢ãèªããã²ãŒã ...
2017幎12æ26æ¥ (ç«)ããããã®èšäº

ãã¬ããŒããKLabã²ãŒã å¶äœã®ãããããããã£ãšãã¿ãããŸã -KLab çŠå²¡ Meetup #2-

ããšã¿ãšãµã€ããŒãšãŒãžã§ã³ãããFlutterããã«æŽ»çšããéçºäºäŸããšã³ãžãã¢ã®ãã ãããèªãââTOYOTA Developers Night








