ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ03·î27Æü(·î) 21:43:18ÍúÎò
¡¡DI ¥³¥ó¥Æ¥Ê¤È¤Ï¡¢Unity¤ÇC#¤ò»È¤Ã¤Æ³«È¯¤ò¹Ô¤¦ºÝ¤Ë¡¢°Í¸À¤ÎÃíÆþ¡ÊDependency Injection: DI¡Ë¤ò¹Ô¤¦¤¿¤á¤Î»ÅÁȤߤòÄ󶡤¹¤ë¥³¥ó¥Æ¥Ê¤Î¤³¤È¤Ç¤¹¡£
°Í¸À¤ÎÃíÆþ¤È¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤ª¤¤¤Æ¡¢¥¯¥é¥¹¤ä¥ª¥Ö¥¸¥§¥¯¥È¤Î°Í¸´Ø·¸¤ò²ò·è¤¹¤ë¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Î1¤Ä¤Ç¤¹¡£
DI¥³¥ó¥Æ¥Ê¤Ï¡¢°Í¸´Ø·¸¤Î¤¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ò¼«Æ°Åª¤ËÀ¸À®¤·¡¢Å¬ÀڤʾõÂÖ¤ÇÄ󶡤¹¤ëÌò³ä¤ò²Ì¤¿¤·¤Þ¤¹¡£
¡¡°Í¸À¤ÎÃíÆþ¤È¤¤¤¦¸ÀÍդǹͤ¨¤ë¤È¥¤¥á¡¼¥¸¤¹¤ë¤³¤È¤¬Æñ¤·¤¤¤¿¤á¡¢
¥×¥í¥°¥é¥à¤Î¥Ñ¡¼¥Ä¡Ê¥¯¥é¥¹¤ä¥ª¥Ö¥¸¥§¥¯¥È¡Ë¤¬¤ª¸ß¤¤¤Ë¤¦¤Þ¤¯¶¨ÎϤ·¤Ê¤¬¤éÆ°¤¯¤è¤¦¤Ë¡¢
´Ø·¸¤òÀ°Íý¤·¤Æ¤¯¤ì¤ëÌò³ä¤ò²Ì¤¿¤¹¡¢¤È¹Í¤¨¤Æ¤ª¤¯¤È¤è¤¤¤Ç¤¹¡£
¤³¤ì¤Ë¤è¤ê¡¢¥³¡¼¥É¤¬¤¤ì¤¤¤Ç¥á¥ó¥Æ¥Ê¥ó¥¹¤·¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£
¡¡VContainer(¥Ö¥¤¡¦¥³¥ó¥Æ¥Ê)¤Ï¡¢Unity¸þ¤±¤Î·ÚÎ̤ÊC# DI¥³¥ó¥Æ¥Ê¤Î1¤Ä¤Ç¡¢¹â®¤Ç³ÈÄ¥À¤ËÍ¥¤ì¤Æ¤¤¤Þ¤¹¡£
VContainer¤Ï¡¢°Í¸À¤Î²ò·è¤ò¹Ô¤¦¤¿¤á¤Ë¡¢¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ä¥µ¡¼¥Ó¥¹¤Î¥é¥¤¥Õ¥¿¥¤¥à´ÉÍý¤òÄ󶡤·¤Þ¤¹¡£
¤Þ¤¿¡¢¥¢¥»¥ó¥Ö¥êÄêµÁ¤ä¥¸¥§¥Í¥ê¥Ã¥¯·¿¤Î¥µ¥Ý¡¼¥È¤Ê¤É¡¢Unity¤È¤Î¿ÆÏÂÀ¤¬¹â¤¤ÆÃħ¤¬¤¢¤ê¤Þ¤¹¡£
¤³¤Î¤¿¤á¡¢Unity¥×¥í¥¸¥§¥¯¥È¤Ç¤Î³«È¯¤ò¸úΨ²½¤¹¤ë¤¿¤á¤ËÍøÍѤµ¤ì¤ë¤³¤È¤¬Â¿¤¤¤Ç¤¹¡£
VContainer
Qiita @sakano ÍÍVContainerÆþÌç
note ¥¢¥Ã¥×¥Õ¥í¥ó¥Æ¥£¥¢³ô¼°²ñ¼Ò ÍÍ
VContainerÆþÌç – MVP¥Ñ¥¿¡¼¥ó¤òÁȤó¤Ç¤ß¤ë
¡¡°Ê²¼¤Ï VContainer ¤È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÍøÍѤ·¤Æ¡¢¥²¡¼¥à¤Î½é´ü²½½èÍý¤ò¹Ô¤¦ºÝ¤Î¼ÂÁõÎã¤Ç¤¹¡£
¡¡¾åµ¤Î¥³¡¼¥É¤Ç¤Ï¡¢IInitializable¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò¼ÂÁõ¤·¤¿¥¯¥é¥¹¤òVContainer¤Ç¼«Æ°Åª¤Ë¼èÆÀ¤·¡¢Start´Ø¿ôÆâ¤ÇInitialize´Ø¿ô¤ò½ç¼¡¸Æ¤Ó½Ð¤·¤Æ¤¤¤Þ¤¹¡£
¡¡GameInitializer¤Ë¤Ï¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤ÇInject°À¤òÉÕ¤±¤ë¤³¤È¤Ç¡¢
¥²¡¼¥à³«»Ï»þ¤ËVContainer¤¬IInitializable¤ò¼ÂÁõ¤·¤¿¥¯¥é¥¹¤ò¼«Æ°Åª¤Ë¼èÆÀ¤·¡¢initializables¤Ë³ÊǼ¤·¤Þ¤¹¡£
¡¡¤½¤Î¸å¡¢foreachʸ¤ò»È¤Ã¤ÆinitializablesÆâ¤ÎÁ´¤Æ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤ÆInitialize´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¡¢¥²¡¼¥à¤Î½é´ü²½½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¤³¤Î¥Ú¡¼¥¸¤Ø¤Î¥³¥á¥ó¥È
³Î¤«¤Ë¡¢ÆüËܤϸµÁÄ¥²¡¼¥à¤Î¹ñ¤Ê¤Î¤Ç¡¢¤³¤ó¤Ê¤¤¤¤¾ðÊ󤬶¦Í¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤¹¤´¤¤¤Ê¤È´¶¤¸¤Þ¤¹¡£ ´Ú¹ñ¤È¤Ï°ã¤Ã¤¿´¶¤¸¤Î¶µ°é¤ò¼õ¤±¤ë¤È¤¤¤¦¤«¡£
»ä¤Ï´Ú¹ñ¡¢Ãæ¹ñ¡¢ÆüËÜ¡¢±ÑÊÆ·÷Á´¤Æ¤ò²ó¤ê¤Ê¤¬¤é¾ðÊó¤ò¼ý½¸¤¹¤ëIndie Game¤Î³«È¯¼Ô¤Ç¤¹¡£
¤Þ¤À¥²¡¼¥à¤ò½Ð¤·¤¿¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¤Ç¤âÅØÎϤϤ·¤Æ¤¤¤Þ¤¹¡£
³Î¤«¤Ë¤³¤¦¤·¤Æ3¹ñ¤ò²ó¤ê¤Ê¤¬¤é´¶¤¸¤ë¤Î¤Ï¡¢ÆüËܤΤۤ¦¤¬ºÇ¿·¤Î¥²¡¼¥àµ»½Ñ¤Î¶¦Í¤¬À¹¤ó¤À¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ ´Ú¹ñ¤Î¥²¡¼¥à¤ÎÊý¤Ï´ë¶È¤ËÆþ¤é¤Ê¤¤¤ÈÁ´Á³¶¦Í¤µ¤ì¤Ê¤¤¤ó¤Ç¤¹¤±¤É¤Í¡£
Æä˴ڹñ¤ÎIndie¥²¡¼¥à³«È¯¤Ï¤ª¸ß¤¤¤Ë¤È¤Æ¤â¹¶·âŪ¤Ê¤Î¤Ç¡Ê¤É¤¦¤·¤Æ¤â¶¥ÁèŪ¤Ç¤¹¡Ë
¸Ä¿ÍŪ¤Ë¤ÏZenject¤ò½ñ¤¤Þ¤¹¤¬¡¢¤³¤Î¤è¤¦¤Ë´ðÁÃŪ¤ÊÀâÌÀ¤¬¤¢¤ë¤Î¤Ç¡¢¤è¤ê´Êñ¤ËÍý²ò¤Ç¤¤ë¤È¤·¤Þ¤·¤ç¤¦¤«
»ä¤Î¾ì¹ç¤Ï¼ç¤ËÃæ¹ñ¤ÎCSDN¥Ö¥í¥°´ØÏ¢¤Çʸ¤ò¸¡º÷¤·¤Æ¸«¤ë¤Î¤Ç¤¹¤¬¡¢ÆüËܤÎÊý¤â¤ä¤Ï¤ê¤¹¤´¤¤¤È´¶¤¸¤Þ¤¹¡£ ¤½¤ì¤ËÂФ·¤Æ´Ú¹ñ¤ÎÊý¤Ï´ðËÜŪ¤Ë¤³¤¦¤·¤¿¾ðÊó¤òÆÀ¤ë¤Ë¤Ï̵ÎÁ¶¦Í¤Ç¤Ï¤Ê¤¯ÍÎÁ¹ÖºÂ¤Ê¤Î¤Ç¤¹¤¬¡¢¤Û¤È¤ó¤ÉModularization¤Ë´Ø¤¹¤ë¾ðÊ󤬤ʤ¤½é¿´¼Ô¹ÖµÁ¤¬¤Û¤È¤ó¤É¤Ê¤Î¤Ç¤¹¤¬¡¢¤³¤³¤Ï»ä¤Î¤è¤¦¤Ê½é¿´¼Ô¤Ç¤âÍý²ò¤·¤ä¤¹¤¯¤È¤Æ¤â½õ¤«¤ê¤Þ¤¹¡£
P.s¡Ë¸Ä¿ÍŪ¤ËÉÔÊؤÊÅÀ¤ò¿½¤·¾å¤²¤Æ¤â¤¤¤¤¤Ç¤¹¤«¡© ¤³¤ÎWIKI¤Ï¡¢ºÇ¶á¥¢¥Ã¥×¥Ç¡¼¥È¤µ¤ì¤¿¥Ú¡¼¥¸¤ÈºÇ¿·¤Î¥³¥á¥ó¥È¤¬É½¼¨¤µ¤ì¤Ê¤¤¤¿¤á¡¢Èæ³ÓŪ³Îǧ¤¬Æñ¤·¤¤¤Ç¤¹¡£
Æä˶ìÏ«¤·¤ÆÊÖ»ö¤ò¤¯¤À¤µ¤Ã¤¿¤ó¤Ç¤¹¤¬¡¢»ä¤Ë¤ÏÊÖ»ö¤¬Á´Á³Íè¤Ê¤¯¤Æ¡¢ÊÖ»ö¤·¤¿ÆâÍƤò¾¤Î½ê¤Ç¤ä¤Ã¤È¸«¤Ä¤±¤Þ¤·¤¿(UniRX´ØÏ¢)
https://srtdog64.hatenablog.com/