ºÇ½ª¹¹¿·¡§ orika_ex_miyako 2024ǯ06·î05Æü(¿å) 13:50:34ÍúÎò
¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤Î¥Ù¡¼¥¹¤È¤Ê¤ëµ¡Ç½¤òÈÆÍÑÀ¤Î¤¢¤ëÀ߷פǺîÀ®¤·¤Æ¤ª¤¡¢¤½¤ì¤ò·Ñ¾µ¤¹¤ë¤³¤È¤ÇÍÍ¡¹¤ÊÍÑÅӤ˱þÍѤǤ¤ë¼ÂÁõÎã¤Ç¤¹¡£
¡¡Å¨¤ÎÀ¸À®¡¢¥¢¥¤¥Æ¥à¤ÎÀ¸À®¡¢¥Ü¥¿¥ó¤ÎÀ¸À®¡¢¥Õ¥í¡¼¥Èɽ¼¨¤ÎÀ¸À®¤Ê¤É¡¢¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤Î³èÍѤǤ¤ëÈϰϤϹ¤¤¤¿¤á¡¢
¤½¤ì¤é¤ËÂФ·¤ÆÈÆÍÑŪ¤Ë¼ÂÁõ¤ò¹Ô¤¦¤¿¤á¤ÎÀ߷פˤʤäƤ¤¤Þ¤¹¡£
¡¡¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤Î¸¶Â§¤òŬÍѤ·¤Æ¡¢¶¦Ä̤ﶤëÉñ¤¤¤òÃê¾Ý¥¯¥é¥¹¤È¤·¤Æ¼ÂÁõ¤·¡¢ÈÆÍÑÀ¡¦ºÆÍøÍÑÀ¤ò¹â¤á¤ë¥¢¥×¥í¡¼¥Á¤òõ¤ê¤Þ¤¹¡£
¡¡PoolBase ¥¯¥é¥¹¤ÏÃê¾Ý¥¯¥é¥¹¤Ç¤¢¤ê¡¢·Ñ¾µ¤òÁ°Äó¤È¤·¤¿¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤ËÂбþ¤µ¤»¤ë¤¿¤á¤Î¿Æ¥¯¥é¥¹¤È¤·¤ÆÀ߷פµ¤ì¤Æ¤¤¤Þ¤¹¡£
¡¡¤³¤ì¤Ë¤è¤ê¡¢·Ñ¾µÀè¤Î»Ò¥¯¥é¥¹¤Ï¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ëµ¡Ç½¤ò´Êñ¤ËÍøÍѤǤ¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¤¤¤ï¤Ð¶¦Ä̤ε¡Ç½¤òÄ󶡤¹¤ë¤¿¤á¤ËºîÀ®¤·¤Þ¤¹¡£
PoolBase.cs
¡¡ÄêµÁ¤·¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Ï¤¢¤ê¤Þ¤»¤ó¡£
IObjectPool ·¿¤Î objectPool ÊÑ¿ô¤È¡¢Æ±¤¸¤¯ IObjectPool ·¿¤Î ObjectPool ¥×¥í¥Ñ¥Æ¥£¤Î£²¤Ä¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£
¡¡objectPool ÊÑ¿ô¤Ï¡¢¤³¤Î¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ë¥¯¥é¥¹¤Ë¡¢¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤Îµ¡Ç½¤òÂбþ½ÐÍè¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¡¡ObjectPool ¥×¥í¥Ñ¥Æ¥£¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤Ø¤Î»²¾È¤òÊÝ»ý¤·¡¢¤³¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤ØÊֵѤ¹¤ëºÝ¤ËÍøÍѤ·¤Þ¤¹¡£
¡¡PoolBase ¥¯¥é¥¹¤Ï¡¢IObjectPool<PoolBase> ·¿¤Î objectPool ÊÑ¿ô¤ò»ý¤Á¡¢¤½¤Î¥×¥í¥Ñ¥Æ¥£¤òÄ̤¸¤Æ¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤Ø¤Î»²¾È¤ò»ý¤Ä¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¥ª¥Ö¥¸¥§¥¯¥È¤Ï´Êñ¤Ë¥×¡¼¥ë¤«¤é¼èÆÀ¡¦ÊֵѤµ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡PoolBase ¥¯¥é¥¹¤ò·Ñ¾µ¤¹¤ë¤³¤È¤Ç¡¢°Û¤Ê¤ë¼ïÎà¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬¶¦Ä̤Υס¼¥ëµ¡Ç½¤ò»ý¤Ä¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢Î㤨¤Ð¥×¥ì¥¤¥ä¡¼¥¥ã¥é¥¯¥¿¡¼¤äŨ¥¥ã¥é¥¯¥¿¡¼¡¢¥¢¥¤¥Æ¥à¤Ê¤É¤¬Íưפ˥ס¼¥ë¤«¤éÀ¸À®¡¦ÊֵѤµ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡PoolBase ¥¯¥é¥¹¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢¥¯¥é¥¹´Ö¤Î°Í¸À¤¬Ä㸺¤µ¤ì¤Þ¤¹¡£³Æ¥¯¥é¥¹¤Ï¶¦Ä̤Υס¼¥ëµ¡Ç½¤òÍøÍѤ¹¤ë¤À¤±¤Ç¡¢Â¾¤Î¥¯¥é¥¹¤È¸úΨŪ¤ËÏ¢·È¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡¿·¤·¤¤¼ïÎà¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÄɲ乤ëºÝ¤Ë¡¢PoolBase ¥¯¥é¥¹¤ò·Ñ¾µ¤¹¤ë¤À¤±¤Ç´Êñ¤Ë¥×¡¼¥ëµ¡Ç½¤ò»ý¤¿¤»¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¿·¤·¤¤¥ª¥Ö¥¸¥§¥¯¥È¤ÎÄɲä¬Íưפˤʤꡢ¿·¤·¤¤Í×ÁǤò´Êñ¤ËÅý¹ç¤·¤Ä¤Ä¡¢Êݼé¤Î¤·¤ä¤¹¤¤¥³¡¼¥É¤¬¼Â¸½¤Ç¤¤Þ¤¹¡£
¡¡Áí¹ç¤¹¤ë¤È¡¢PoolBase ¥¯¥é¥¹¤Ï¡¢¥²¡¼¥àÆâ¤Ç¶¦Ä̤Υס¼¥ëµ¡Ç½¤òÄ󶡤·¡¢¥³¡¼¥É¤Î½ÀÆðÀ¤ÈÊݼéÀ¤ò¸þ¾å¤µ¤»¤ë¤¿¤á¤Î´ðÈפȤ·¤Æ½ÅÍפÊÌò³ä¤ò²Ì¤¿¤·¤Æ¤¤¤Þ¤¹¡£Æäˡ¢ÂçÎ̤Υª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¤ÈÇË´þ¤¬È¯À¸¤¹¤ë¥²¡¼¥à³«È¯¤Ë¤ª¤¤¤Æ¡¢¤½¤Î͸úÀ¤Ï¸²Ãø¤Ç¤¹¡£
¡¡Ãê¾Ý¥¯¥é¥¹¤È¤·¤Æ GeneratorBase ¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£
¡¡¼ÂÁõ¤Ë¤¢¤¿¤ê¡¢³Æ¥á¥½¥Ã¥É¤ò²¾ÁÛ(virtual)¥á¥½¥Ã¥É¤È¤·¤ÆÄêµÁ¤·¤Þ¤¹¡£
²¾Áۥ᥽¥Ã¥É¤Ç¤Ï¶¦Ä̤ﶤëÉñ¤¤¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¤¬¡¢¶ñÂÎŪ¤Ê¿¶¤ëÉñ¤¤¤Ë¤Ä¤¤¤Æ¤Ï¥µ¥Ö¥¯¥é¥¹¤Ë°Ñ¤Í¤Æ¤¤¤Þ¤¹¡£
GeneratorBase.cs
¡¡GeneratorBase ¥¯¥é¥¹¤ÏÃê¾Ý¥¯¥é¥¹¤Ç¤¢¤ê¡¢Å¨¥¥ã¥é¥¯¥¿¡¼¤ä¥Õ¥í¡¼¥Èɽ¼¨¡¢¥¢¥¤¥Æ¥à¤Ê¤É¡¢¤µ¤Þ¤¶¤Þ¤ÊÌÜŪ¤Ç»ÈÍѤµ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®¤ËÍøÍѤµ¤ì¤Þ¤¹¡£¤³¤Î¥¯¥é¥¹¤ò·Ñ¾µ¤¹¤ë¤³¤È¤Ç¡¢¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤òÍøÍѤ·¤¿¸úΨŪ¤Ê¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¤¬²Äǽ¤È¤Ê¤ê¤Þ¤¹¡£
¡¡¤Ä¤Þ¤ê¡¢¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤Î´ðÈפȤʤë¿Æ¥¯¥é¥¹¤Ç¤¹¡£
¡¡°Ê²¼¤Ï¤½¤ÎÀ߷פȼÂÁõ¤Ë¤Ä¤¤¤Æ¤ÎÀâÌÀ¤Ç¤¹¡£
¡¡GeneratorBase ¥¯¥é¥¹¤ÏÃê¾Ý¥¯¥é¥¹¤Ç¤¢¤ê¡¢³Æ¥á¥½¥Ã¥É¤Ï²¾Áۥ᥽¥Ã¥É¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢É¬Íפ˱þ¤¸¤Æ¥µ¥Ö¥¯¥é¥¹¤Ç¤Î¼ÂÁõ¤¬¥ª¡¼¥Ð¡¼¥é¥¤¥É¤Ç¤¤ë¾õÂ֤ˤʤäƤ¤¤Þ¤¹¡£¶¦Ä̤ÎÀ¸À®½èÍý¤ò»ý¤Á¤Ê¤¬¤é¡¢¥µ¥Ö¥¯¥é¥¹¤´¤È¤ÎÆÃÊ̤ʽèÍý¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥µ¥Ö¥¯¥é¥¹¤Ë°Ñ¤Í¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡¤³¤ÎÀ߷פˤè¤ê¡¢¶¦Ä̤ﶤëÉñ¤¤¤ò²¾ÁÛ¥¯¥é¥¹¤ÇÄêµÁ¤·¤Æ¤ª¤¡¢É¬Íפ˱þ¤¸¤Æ¡¢¸ÄÊ̤ﶤëÉñ¤¤¤ò¥µ¥Ö¥¯¥é¥¹¤Ç¥«¥¹¥¿¥Þ¥¤¥º¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡GeneratorBase ¥¯¥é¥¹¤Ë¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤ò½é´ü²½¤¹¤ë¤¿¤á¤Î InitObjectPool ¥á¥½¥Ã¥É¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥á¥½¥Ã¥É¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤ÎÀ¸À®¡¢¼èÆÀ¡¢²òÊü¡¢Ç˲õ¤Î³Æ½èÍý¤òÀßÄꤷ¤Þ¤¹¡£
¡¡Create ¥á¥½¥Ã¥É¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤òÍøÍѤ·¤¿¿·¤·¤¤¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®¤ò¹Ô¤¤¤Þ¤¹¡£¤³¤Î¥á¥½¥Ã¥É¤Ï²¾Áۥ᥽¥Ã¥É¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¥µ¥Ö¥¯¥é¥¹¤Ç¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¤¬²Äǽ¤Ç¤¹¡£
¡¡GetObjectFromPool ¥á¥½¥Ã¥É¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤«¤é¥ª¥Ö¥¸¥§¥¯¥È¤ò¼èÆÀ¤·¤Æ°ÌÃ֤Ȳóž¤òÀßÄꤷ¤Þ¤¹¡£¤Þ¤¿¡¢UI¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®ÍѤΥª¡¼¥Ð¡¼¥í¡¼¥É¤âÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¡¡
¡¡GeneratorBase ¥¯¥é¥¹¤Ï¡¢¥²¡¼¥àÆâ¤Ç¶¦Ä̤Υª¥Ö¥¸¥§¥¯¥ÈÀ¸À®µ¡Ç½¤òÄ󶡤·¡¢¥³¡¼¥É¤ÎºÆÍøÍÑÀ¤ÈÊݼéÀ¤ò¸þ¾å¤µ¤»¤ë¤¿¤á¤Î´ðÈפȤ·¤Æ½ÅÍפÊÌò³ä¤ò²Ì¤¿¤·¤Æ¤¤¤Þ¤¹¡£Ãê¾Ý¥¯¥é¥¹¤È¤¹¤ë¤³¤È¤Ç¡¢¥µ¥Ö¥¯¥é¥¹¤Ç¤Î½ÀÆð¤Ê¼ÂÁõ¤ò²Äǽ¤Ë¤·¡¢¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤òÍøÍѤ·¤¿¸úΨŪ¤Ê¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¤¬¼Â¸½¤Ç¤¤Þ¤¹¡£
¡¡°Ê¾å¤Ç´°À®¤Ç¤¹¡£
¡¡¼¡¤Î¼ê½ç¤Ç¤Ï¡¢¥¨¥Õ¥§¥¯¥Èµ¡Ç½¤òÈÆÍÑŪ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤È¤·¤ÆÍøÍѤ¹¤ë¾ì¹ç¤Î¼ÂÁõÎã¤ò³Ø½¬¤·¤Þ¤¹¡£
¡¡¡¡=>¡¡ÈÆÍÑŪ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¥×¡¼¥ë¤Î¼ÂÁõÎã¢
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯