Unity¤Ë´ØÏ¢¤¹¤ëµ­»ö¤Ç¤¹

¡¡º£²ó¤Ï¡¢¥¯¥é¥¹¤Î·Ñ¾µ¤È¿ÂÖÀ­¤È¤¤¤¦¡¢¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤ª¤±¤ë½ÅÍפʳµÇ°(¸¶Â§)¤òÍøÍѤ·¤¿À߷פγؽ¬¤È¼ÂÁõ¤ò¹Ô¤¤¤Þ¤¹¡£



¡ã³Ø½¬ÆâÍÆ¡ä
¡¡¡¦¥¯¥é¥¹¤Î·Ñ¾µ
¡¡¡¦protected(¥×¥í¥Æ¥¯¥Æ¥Ã¥É) ¥­¡¼¥ï¡¼¥É
¡¡¡¦virtual(¥Ð¡¼¥Á¥ã¥ë) ¥­¡¼¥ï¡¼¥É
¡¡¡¦override(¥ª¡¼¥Ð¡¼¥é¥¤¥É) ¥­¡¼¥ï¡¼¥É
¡¡¡¦base(¥Ù¡¼¥¹) ¥­¡¼¥ï¡¼¥É
¡¡¡¦¥¯¥é¥¹¤Î·Ñ¾µ»þ¤ËÍøÍѤǤ­¤ë¡¢²¾ÁÛ(Ãê¾Ý)¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É½èÍý¡¡¡¼Â¿ÂÖÀ­(¥Ý¥ê¥â¡¼¥Õ¥£¥º¥à)¡¼



Àß·×


¡¡º£²ó¤Ï¤Þ¤º¡¢¥¤¥Ù¥ó¥È¤ò£±¤Ä¤À¤±¼Â¹Ô¤¹¤ëµ¡Ç½¤ò¹Í¤¨¤Þ¤¹¡£


¡ãÌ¿Îá¤ò½Ð¤¹Â¦(¥Õ¥¡¥ß¥³¥ó¦)¡ä
¡¡¡¦¥×¥ì¥¤¥ä¡¼Â¦

¡ãÌ¿Îá¤ò¼õ¤±¼è¤ë¦(¥½¥Õ¥È¦)¡ä
¡¡¡¦¥¤¥Ù¥ó¥È¤ò¹Ô¤¦¥ª¥Ö¥¸¥§¥¯¥È¦
¡¡¡¡¡¡¢ª¡¡£Î£Ð£Ã¡¢ÊõÈ¢¡¢Ãµº÷ÃÏÅÀ¡¢¤ªÅ¹¤Ê¤É

¡¡¤³¤Î¤è¤¦¤Ê¹½¿Þ¤Ç¤¹¡£

¡¡¸½ºß¤Ï¤³¤ì¤é¤Î½èÍý¤¬¡¢¤¹¤Ù¤Æ£±¤Ä¤Î¥¯¥é¥¹¤Ë¤Þ¤È¤Þ¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡¤½¤Î¤¿¤á¡¢¤Þ¤º¤Ï¡¢¥½¥Õ¥È¦¤Î½èÍý¤Ë¤Ä¤¤¤Æ¡¢¥¯¥é¥¹¤Î·Ñ¾µ¤òÍøÍѤ·¤ÆÃê¾Ý²½¤Î½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤­¤Þ¤¹¡£

¡¡¤¤¤Þ¤Þ¤Ç¥¯¥é¥¹¤Ë¤è¤Ã¤Æ½èÍý¤òʬ´ô¤·¤Æ¤¤¤Þ¤·¤¿¤¬¡¢¤½¤¦¤Ç¤Ï¤Ê¤¯¡¢¥¯¥é¥¹¤ÎÃæ¿È¤ÏÃΤé¤Ê¤¤¤Þ¤Þ¤Ç½èÍý¤ò¼Â¹Ô¤·¤Æ¤¤¤¯»ÅÁȤߤòºî¤ê¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢¥½¥Õ¥È¤Ï»É¤µ¤Ã¤Æ¤¤¤ë¤«¤É¤¦¤«¤À¤±¤ò¥Õ¥¡¥ß¥³¥ó¤¬ÃΤäƤ¤¤ë¾õÂÖ¤ÇÆ°¤¯¤è¤¦¤Ë¤·¤Æ¤¤¤­¤Þ¤¹¡£

¡¡¤½¤Î¸å¡¢»Ä¤Ã¤¿Éôʬ¤Î½èÍý¤ò¥Õ¥¡¥ß¥³¥óËÜÂΤε¡Ç½¤È¤·¤ÆÆ°¤¯¤è¤¦¤Ë²þÎɤ·¤Þ¤¹¡£


¹Í¤¨Êý¤ÎÊÑ´¹ÊýË¡


¡¡¥¯¥é¥¹¤ä¥¿¥°¤Ë¤è¤ëʬ´ô½èÍý¤Èʬ´ôÆâÍƤò¡¢¡Ö¥¯¥é¥¹¤Ë¤Ä¤­¡¢£±¤Ä¤Îʬ´ô½èÍý¤òºî¤ë¡×¤È¤¤¤¦¹Í¤¨Êý¤«¤é¡¢¡Ö¥¯¥é¥¹¤Ï£±¤Ä¤Î¥¤¥Ù¥ó¥È(ÆÈΩ¤·¤¿¥¯¥é¥¹)¡×¤È¤¤¤¦É÷¤ËÊѤ¨¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

¡¡¥¯¥é¥¹¤È¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ·¿¥×¥í¥°¥é¥à¤Ë¤ª¤¤¤Æ¤ÏÀ߷׿ޤˤ¢¤¿¤ê¤Þ¤¹¡£
¤³¤ÎÀ߷׿ޤ«¤é£±¤Ä¤Î¥ª¥Ö¥¸¥§¥¯¥È(¥¤¥ó¥¹¥¿¥ó¥¹)¤¬ºî¤é¤ì¤ÆÍøÍѤµ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
¥¤¥Ù¥ó¥È¤òºî¤ë¤¿¤á¤Ë¤Ï¡¢¥¯¥é¥¹ = ¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤ÆÃÖ¤­´¹¤¨¤Æ¹Í¤¨¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡²¾¤Ë£³¤Ä¤Îʬ´ô½èÍý¤¬¤¢¤ë¾ì¹ç¡¢¤½¤ì¤Ï£³¤Ä¤Îʬ´ô¤«¤é¡¢£³¤Ä¤Î¥¤¥Ù¥ó¥È¤¬¤¢¤ë¤È¹Í¤¨¤Þ¤¹¡£
¤³¤Î¥¤¥Ù¥ó¥È¤È¤Ï¡¢£³¤Ä¤Î¥¯¥é¥¹¤Î¤³¤È¤Ç¤¢¤ê¡¢¤½¤Î¥¯¥é¥¹¤«¤é£³¤Ä¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬ºî¤é¤ì¤Æ¤¤¤Æ¡¢¤½¤ì¤¬¥¤¥Ù¥ó¥È¤È¤Ê¤Ã¤Æ¤¤¤ë¡¢¤È¤¤¤¦¹Í¤¨Êý¤Ç¤¹¡£

¡¡Ãê¾Ý²½¤ò¹Ô¤Ã¤Æ¤¤¤¯ºÝ¤Î¥Ý¥¤¥ó¥È¤Ï¡¢¤³¤Î¹Í¤¨Êý¤ÎÊÑ´¹¤Ç¤¹¡£
½èÍý¥Ù¡¼¥¹¤Ç¤Ï¤Ê¤¯¤Æ¡¢¥ª¥Ö¥¸¥§¥¯¥È¥Ù¡¼¥¹¤Ç¹Í¤¨¤Æ¤ß¤ë¡¢¤È¤¤¤¦·Á¤Ç¥¤¥á¡¼¥¸¤òºî¤Ã¤Æ¤¤¤¯¤ÈÍý²ò¤·¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£
(¤³¤Î¹Í¤¨Êý¤À¤±¤¬Àµ¤È¤¤¤¦Ìõ¤Ç¤Ï¤Ê¤¯¡¢Â¾¤Ë¤âÃê¾Ý²½¤Ë¤Ä¤¤¤Æ¤Î¹Í¤¨Êý¤Ï¤¢¤ê¤Þ¤¹¡£Íý²ò¤¹¤ë¤¿¤á¤Î£±¤Ä¤ÎÊýË¡¤È¹Í¤¨¤Æ¤¯¤À¤µ¤¤¡£)


¶¦Ä̲½¤Ç¤­¤ë½èÍý¤ò¹Í¤¨¤Æ¿Æ»Ò¤È¤Ê¤ë¥¯¥é¥¹¤ÎÀ߷פò¤¹¤ë


¡¡³Æ¥¤¥Ù¥ó¥È¤ò¥¯¥é¥¹¤Ë¤è¤Ã¤Æʬ´ô¤·¤Æ¤¤¤ëÉôʬ¤Î¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤ò¹Ô¤Ã¤Æ¤¤¤­¤Þ¤¹¡£

¡¡¿Æ¤È¤Ê¤ë¥¯¥é¥¹¤ÏMonobehaviour¤ò·Ñ¾µ¤·¤¿¥¯¥é¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤¬¤¹¤Ù¤Æ¤Î¥¤¥Ù¥ó¥È¤Î¿Æ¤È¤Ê¤ë¥¯¥é¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡»Ò¥¯¥é¥¹¤Ç¤Î¤ß¼ÂÁõ¤¬É¬ÍפʾðÊó¤È¡¢¿Æ¥¯¥é¥¹¤Ë¼ÂÁõ¤·¤Æ»Ò¥¯¥é¥¹¤Ç¶¦Ä̲½¤·¤ÆÍøÍѤ·¤¿¤¤¾ðÊó¤È¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç
¤Þ¤º¤Ï¤½¤ÎÀÚ¤êʬ¤±¤ò¹Ô¤Ã¤Æ¡¢¶¦Ä̲½¤Ç¤­¤ë¤â¤Î¤Î¤ß¤ò¿Æ¥¯¥é¥¹¤ËÍÑ°Õ¤·¤Þ¤¹¡£

¡¡¡¦UTAGE ¤Î¥Õ¥é¥°
¡¡¡¦¥¤¥Ù¥ó¥È¤Î¼Â¹Ô(Ãæ¿È¤ÏÊÌ)

¡¡¤³¤ÎÊÕ¤ê¤Ï¡¢¶¦Ä̲½¤Ç¤­¤ë½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤Ç¤¹¤¬¡¢

¡¡¡¦¥¤¥Ù¥ó¥È¤ÎÃæ¿È(²ñÏÃ¥¤¥Ù¥ó¥È¡¢ÊõÈ¢¥¤¥Ù¥ó¥È¡¢¸æ¼ë°õ¥¤¥Ù¥ó¥È¡¢°ÜÆ°¥¤¥Ù¥ó¥È¡¢À¸À®¥¤¥Ù¥ó¥È¤Ê¤É)

¡¡¤³¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤ì¤¾¤ì¤Î¥¤¥Ù¥ó¥È¤Ë¤è¤Ã¤ÆÆâÍƤ¬°Û¤Ê¤ë¤¿¤á¡¢
¿Æ¥¯¥é¥¹¤Ë¶¦Ä̲½¤·¤Æ½èÍý¤òºî¤Ã¤¿¾å¤Ç¡¢»Ò¥¯¥é¥¹¤Ç¤½¤ì¤¾¤ì¤Î¥¤¥Ù¥ó¥È¤ÎÆâÍƤ˱褦ÆâÍƤ˽¤Àµ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

¡¡¥¯¥é¥¹¤Î·Ñ¾µ¤Ç¤Ï¡¢¤³¤Î¶¦Ä̲½¤Îµ¡Ç½¤È¡¢»Ò¥¯¥é¥¹¤Ç°Û¤Ê¤ë½èÍý¤ËÊѤ¨¤ëµ¡Ç½¤ò¼ÂÁõ¤Ç¤­¤Þ¤¹¡£

¡¡¿Æ¥¯¥é¥¹¤ÏÄ̾ïÄ̤ꡢ¿·¤·¤¤C#¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¤¤¤¯¼ê½ç¤Çºî¤Ã¤Æ¤¤¤­¤Þ¤¹¡£



¡¡¿Æ¥¯¥é¥¹¤Ëµ­½Ò¤¹¤ëÆâÍƤϡ¢Ä̾ï¤Î¥¯¥é¥¹¤ÈƱ¤¸¤è¤¦¤ËÊÑ¿ô¤ÎÀë¸À¤È¥á¥½¥Ã¥É¤ÎºîÀ®¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢µ­½Ò¤¹¤ë½ñ¼°¤¬¤¤¤¯¤Ä¤«ÊѤï¤ê¤Þ¤¹¡£

¡¡ÊÑ¿ô¤ä¥á¥½¥Ã¥É¤ÎÀë¸À¤Ë¤ª¤¤¤Æ private ½¤¾þ»Ò¤òÍøÍѤ¹¤ëÉôʬ¤Ë¤Ï¡¢Âå¤ï¤ê¤Ë protected ½¤¾þ»Ò¤ò»ÈÍѤ·¤Þ¤¹¡£
¤³¤ì¤Ï·Ñ¾µ¤·¤¿¥¯¥é¥¹´Ö¤Ç¤Î¤ß»ÈÍѤǤ­¤ë¤³¤È¤òµö²Ä¤¹¤ë½¤¾þ»Ò¤Ç¤¹¡£
³°Éô¤ÇÍøÍѤ·¤¿¤¤ÊÑ¿ô¤ä¥á¥½¥Ã¥É¤Î¾ì¹ç¤Ë¤Ï¡¢Ä̾ïÄ̤ê public ½¤¾þ»Ò¤ò»ÈÍѤ·¤Þ¤¹¡£

¡¡¤Þ¤¿¥á¥½¥Ã¥É¤Î¾ì¹ç¤Ë¤Ï¡¢Àë¸À»þ¤Ë virtual ¥­¡¼¥ï¡¼¥É¤òµ­½Ò¤·¤Þ¤¹¡£¤³¤¦¤¹¤ë¤³¤È¤Ç»Ò¥¯¥é¥¹¤¬¾å½ñ¤­²Äǽ¤Ê¡¢¿Æ¥¯¥é¥¹¤Î¥á¥½¥Ã¥É¤È¤·¤ÆÀ®Î©¤·¤Þ¤¹¡£

¡¡¿Æ¥¯¥é¥¹¤ÇÀßÄꤵ¤ì¤¿¥¢¥¯¥»¥¹½¤¾þ»Ò¤Î¾ðÊó¤Ï»Ò¥¯¥é¥¹¤Ç¤â°ú¤­·Ñ¤¬¤ì¤Þ¤¹¡£
Î㤨¤Ð¿Æ¥¯¥é¥¹¤Ç public float x ¤òºîÀ®¤·¤Æ¤¤¤ì¤Ð¡¢¤½¤ì¤Ï»Ò¥¯¥é¥¹¤Ç¤â public float x ¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£
¥á¥½¥Ã¥É¤âƱÍͤǤ¹¡£


¿Æ¥¯¥é¥¹¤ÎºîÀ®


¡¡¥Õ¥¡¥ß¥³¥ó¤ÇÎ㤨¤ë¤È¡¢¥½¥Õ¥È¦Á´ÂΤÇÍøÍѤ¹¤ë»ÅÍͤËÅö¤¿¤ê¤Þ¤¹¡£
¥«¥»¥Ã¥È¤Î·Á¾õ¤Ç¤¢¤Ã¤¿¤ê¡¢ËÜÂΤ˻ɤ¹Éôʬ¤Ç¤¢¤Ã¤¿¤ê¤È¤¤¤¦²Õ½ê¤Ï¤¹¤Ù¤Æ¤Î¥½¥Õ¥È¤Ë¶¦Ä̤·¤Æ¤¤¤Þ¤¹¡£

¡¡¤½¤Î¶¦Ä̤¹¤ëÉôʬ¤ò¿Æ¥¯¥é¥¹¤È¤·¤ÆºîÀ®¤¹¤ë¤³¤È¤Ç¡¢¤¹¤Ù¤Æ¤Î»Ò¥¯¥é¥¹¤Î»ÅÍͤò¶¦Ä̲½¤·¤Þ¤¹¡£



¡¡MonoBehaviour ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤¿¿Æ¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£
ºîÀ®ÊýË¡¤ÏÄ̾ï¤Î¥¯¥é¥¹¤ÎºîÀ®ÊýË¡¤ÈƱ¤¸¤Ç¤¹¡£

¡¡¤³¤Î¥¯¥é¥¹¤Ë¤Ï·Ñ¾µÀè¤Ë¤Ê¤ë»Ò¥¯¥é¥¹Æâ¤Ç¶¦Ä̤·¤ÆÍøÍѤ¹¤ëÊÑ¿ô¤ä¥á¥½¥Ã¥É¤òÄêµÁ¤·¤Æ¤ª¤­¤Þ¤¹¡£

¡¡¤³¤³¤Ç¤Ï ExecuteEventCoroutine ¥á¥½¥Ã¥É¤òÄêµÁ¤·¡¢¤¹¤Ù¤Æ¤Î¥¯¥é¥¹¤Ç¶¦Ä̤Ǽ¹ԤǤ­¤ë¥á¥½¥Ã¥É¤È¤·¤Æ¤ª¤­¤Þ¤¹¡£
¥Õ¥¡¥ß¥³¥ó¤Ë¥½¥Õ¥È¤ò»Ø¤·¤ÆÅŸ»¤òÆþ¤ì¤¿¤é¥²¡¼¥à¤¬µ¯Æ°¤·¤Þ¤¹¤¬¡¢¤½¤Îµ¯Æ°¸å¤Î½èÍý¤ËÅö¤¿¤ê¤Þ¤¹¡£
¤¿¤À¤·¡¢¥½¥Õ¥È¤Ë¤è¤Ã¤ÆÆ°¤¯¥²¡¼¥à¤¬ÍÍ¡¹¤¢¤ë¤Î¤ÈƱ¤¸¤Ç¡¢¤³¤Î½èÍý¤â¡¢
¼ÂºÝ¤Î½èÍý¤ÎÆâÍÆ(¥Õ¥¡¥ß¥³¥ó¤Ç¤¢¤ì¤ÐÆ°¤¯¥²¡¼¥à¤ÎÆâÍÆ)¤Ë¤Ä¤¤¤Æ¤Ï¡¢³Æ»Ò¥¯¥é¥¹Â¦¤Ç¼ÂÁõ¤·¤Þ¤¹¡£

¡¡¤³¤Î¤è¤¦¤Ë¿Æ¥¯¥é¥¹¤Ç¤Ï¡¢¥á¥½¥Ã¥É¤À¤±ÄêµÁ¤·¤Æ¤ª¤¤¤Æ¡¢¼ÂºÝ¤Ë¤Ï»Ò¥¯¥é¥¹¤Ç¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤ÎÆâÍƤò½ñ¤­´¹¤¨¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¤½¤Î¤¿¤á¤Î¥á¥½¥Ã¥É¤ò²¾Áۥ᥽¥Ã¥É(Ãê¾Ý¥á¥½¥Ã¥É)¤È¤¤¤¤¡¢ÀìÍѤΠvirtual ¥­¡¼¥ï¡¼¥É¤ò»È¤¦¤³¤È¤ÇÄêµÁ¤·¤Þ¤¹¡£

¡¡º£²ó¤Ç¤¢¤ì¤Ð¡¢±ã¤Î¥Ç¡¼¥¿¤òÍøÍѤ¹¤ë¥±¡¼¥¹¤¬Â¿¤¤¤¿¤á¡¢¤½¤Î¾ðÊó¤òÊÑ¿ô¤È¤·¤ÆÄêµÁ¤·¤Æ¤ª¤­¤Þ¤¹¡£


<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹¡£


¡¡¿·¤·¤¯ protected ½¤¾þ»Ò¤È virtual ¥­¡¼¥ï¡¼¥É¤¬½Ð¤Æ¤­¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢½çÈÖ¤ËÀâÌÀ¤·¤Þ¤¹¡£


¡ãprotected(¥×¥í¥Æ¥¯¥Æ¥Ã¥É) ¥­¡¼¥ï¡¼¥É¡ä


¡¡protected ¥­¡¼¥ï¡¼¥É¤Ï¥¢¥¯¥»¥¹½¤¾þ»Ò¤Î£±¤Ä¤Ç¤¹¡£private ¤ä public ¤ÎÃç´Ö¤Ç¤¹¡£

¡¡protected ¥­¡¼¥ï¡¼¥É¤òÀë¸À¤·¤¿ÊÑ¿ô¤ä¥á¥½¥Ã¥É¤Ï¡¢¥¯¥é¥¹ÆâÉô¡¢¤¢¤ë¤¤¤ÏÇÉÀ¸(»Ò)¥¯¥é¥¹¤«¤é¤Î¤ß¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡¤½¤Î¤¿¤á¡¢¿Æ¥¯¥é¥¹¤È¤Ê¤ë¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¡¢¿Æ»Ò´Ö¤ÇÍøÍѤ·¤¿¤¤ÊÑ¿ô¤ä¥á¥½¥Ã¥É¤Ë¤Ï protected ½¤¾þ»Ò¤òÀë¸À¤·¤Þ¤¹¡£
¤³¤ì¤Ï¿Æ¥¯¥é¥¹¤Ë¤ª¤¤¤Æ private ½¤¾þ»Ò¤ÇÀë¸À¤·¤Æ¤¤¤ë¾ì¹ç¡¢¿Æ¥¯¥é¥¹ÆâÉô¤Ç¤ÏÍøÍѤǤ­¤Þ¤¹¤¬¡¢ÇÉÀ¸¥¯¥é¥¹¤Ç¤ÏÍøÍѤǤ­¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤¿¤á¤Ç¤¹¡£


¡ã¿Æ¥¯¥é¥¹¤Ë¤¢¤ë protected ½¤¾þ»Ò¤ò»ý¤ÄÊÑ¿ô¤ä¥á¥½¥Ã¥É¡ä
¡¡¡¡// ÊÑ¿ô¤Ç¤ÎÍøÍÑ
¡¡¡¡[SerializeField]
    protected UtageParamBoolName utageParamBoolName;


¡ã»²¹Í¥µ¥¤¥È¡ä
MicroSoft
protected (C# ¥ê¥Õ¥¡¥ì¥ó¥¹)
MicroSoft
¥¢¥¯¥»¥¹½¤¾þ»Ò


¡ãvirtual(¥Ð¡¼¥Á¥ã¥ë) ¥­¡¼¥ï¡¼¥É¡ä


¡¡¿Æ¥¯¥é¥¹¤Ë¤ª¤¤¤ÆÄêµÁ¤·¤¿¥á¥½¥Ã¥É¤Ï¡¢virtual (²¾ÁÛ) ¥­¡¼¥ï¡¼¥É¤ò°ì½ï¤ËÀë¸À¤¹¤ë¤³¤È¤Ç¡¢ÇÉÀ¸(»Ò)¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¥ª¡¼¥Ð¡¼¥é¥¤¥É½èÍý¤ò¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬µö²Ä¤µ¤ì¤Þ¤¹¡£
¤³¤Îµ¡Ç½¤òÍ­¤·¤Æ¤¤¤ë¥á¥½¥Ã¥É¤ò²¾Áۥ᥽¥Ã¥É¤È¤¤¤¤¤Þ¤¹¡£²¾Áۥ᥽¥Ã¥É¤Ë¤è¤ê¡¢¥á¥½¥Ã¥É¤Ë¤Ï¿ÂÖÀ­(»Ò¥¯¥é¥¹¤Ë¤è¤ê¡¢¥á¥½¥Ã¥É¤Î¿¶¤ëÉñ¤¤¤¬ÊѤï¤ë)¤¬À¸¤Þ¤ì¤Þ¤¹¡£


¡ã¿Æ¥¯¥é¥¹¤Ë¤¢¤ë²¾Áۥ᥽¥Ã¥É¡ä
    public virtual IEnumerator ExecuteEventCoroutine() {

¡¡¡¡¡¡¡¡//¡¡·Ñ¾µ¤·¤¿»Ò¥¯¥é¥¹Â¦¤Ç½èÍý¤Î½ñ¤­´¹¤¨¤¬½ÐÍè¤ë¡£

    }


¡¡virtual ¥­¡¼¥ï¡¼¥É¤Î¤Ê¤¤¥á¥½¥Ã¥É(Ä̾ï¤Î¥á¥½¥Ã¥É)¤Ï²¾Áۥ᥽¥Ã¥É¤Ç¤Ï¤Ê¤¤¤¿¤á¡¢½èÍý¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤¹¤ë¤³¤È¤Ï½ÐÍè¤Þ¤»¤ó¡£


¡ã³Æ¥­¡¼¥ï¡¼¥É¤Î´Ø·¸À­¡ä
¡¡virtual => override ¤Ç¤­¤ë

  abstract => override ¤Ç¤­¤ë


»²¹Í¥µ¥¤¥È
MicroSoft
virtual (C# ¥ê¥Õ¥¡¥ì¥ó¥¹)


»Ò¥¯¥é¥¹¤ÎºîÀ®


¡¡¿Æ¥¯¥é¥¹¤Ç¤¢¤ë GameEventBase ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤¿»Ò¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£

¡¡¤³¤³¤ÇÍÑ°Õ¤¹¤ë¥á¥½¥Ã¥É¤¬¡¢¥½¥Õ¥È¤ÎÃæ¿È¤ËÅö¤¿¤ê¤Þ¤¹¡£

¡¡¤³¤ÎÎã¤Ç¤Ï±ã¥¢¥»¥Ã¥È¤ò²ñÏÃ¥¤¥Ù¥ó¥È¤È¤·¤ÆÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Î¼ÂÁõÎã¤Ç¤¹¡£
¤¤¤Þ¤Þ¤Ç¤Ïʬ´ô½èÍý¤ÎÆâÉô¤Ë½ñ¤«¤ì¤Æ¤¤¤¿½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¿Æ¥¯¥é¥¹¤È¤·¤Æ GameEventBase ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤Î»Ò¥¯¥é¥¹¼«ÂΤˤâ MonoBehaviour ¥¯¥é¥¹¤Îµ¡Ç½¤ò¼ÂÁõ½ÐÍè¤Þ¤¹¡£

¡¡¿Æ¥¯¥é¥¹¤Ë¤ÆÄêµÁ¤·¤Æ¤¤¤ë²¾ÁÛ(virtual)¥á¥½¥Ã¥É¤ò override ¤·¤Æ¤Î»Ò¥¯¥é¥¹¤Ë¤ÆÍøÍѤ¹¤ë¾ì¹ç¡¢½¤¾þ»Ò¤ÏƱ¤¸½¤¾þ»Ò¤ÇÀë¸À¤·¤Þ¤¹¡£
º£²ó¤Ç¤¢¤ì¤Ð¡¢¿Æ¥¯¥é¥¹¤Î ExecuteEventCoroutine ¥á¥½¥Ã¥É¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¤¿¤á¡¢Æ±¤¸ public ½¤¾þ»Ò¤Ë¤ÆÀë¸À¤·¤Æ¤¤¤Þ¤¹¡£


<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹¡£




¡¡MonoBehaviour ¥¯¥é¥¹¤¬·Ñ¾µ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¤¬¡¢Àµ¾ï¤ËÆ°ºî¤·¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á½ÐÍè¤Þ¤¹¡£
¤³¤ì¤Ï¿Æ¥¯¥é¥¹¤Ç¤¢¤ë GameEventBase ¤Ë MonoBehaviour ¥¯¥é¥¹¤¬·Ñ¾µ¤µ¤ì¤Æ¤¤¤ë¤¿¤á¤Ç¤¹¡£

¡¡¥¯¥é¥¹¤Î·Ñ¾µ¤Ï¡¢¾ï¤Ë£±¤Ä¤Î¥¯¥é¥¹¤·¤«·Ñ¾µ½ÐÍè¤Þ¤»¤ó¡£¤½¤¦¤¤¤¦¥ë¡¼¥ë¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹(¿½Å·Ñ¾µ¤Î¶Ø»ß)
¤Ç¤¹¤¬¡¢»Ò¥¯¥é¥¹¤Ï¿Æ¥¯¥é¥¹¤Î·Ñ¾µ¤·¤Æ¤¤¤ë¡¢¤¹¤Ù¤Æ¤Î¥¯¥é¥¹¤Î¾ðÊó¤ò°·¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢¿Æ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤¿»Ò¥¯¥é¥¹¡¢»Ò¥¯¥é¥¹¤ò·Ñ¾µ¤·¤¿Â¹¥¯¥é¥¹¤È·Ñ¾µÀè¤ò½Å¤Í¤Æ¤¤¤¯¤³¤È¤Ç¡¢Ê£¿ô¤Î¥¯¥é¥¹¤¬ÍøÍѤǤ­¤Þ¤¹¡£

¡¡¤Þ¤¿ using ¤Ë UnityEngine ¤Îµ­½Ò¤¬¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤³¤ì¤â¡¢¤³¤Î¥¯¥é¥¹Æâ¤Ç UnityEngine ¤Ë´ØÏ¢¤¹¤ëµ¡Ç½¤¬¤Ê¤¤¤¿¤á¤Ç¤¹¡£



¡¡»Ò¥¯¥é¥¹¤Î½èÍý¤Ï°Ê¾å¤Ç¤¹¡£

¡¡»Ò¥¯¥é¥¹¤Ë½ñ¤«¤ì¤Æ¤¤¤Ê¤¤ utageParamBoolName ÊÑ¿ô¤Ï¿Æ¥¯¥é¥¹¤Ç¤¢¤ë GameEventBase ¦¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤Ç½èÍý¤ò¹Ô¤Ã¤Æ¤¯¤ì¤Þ¤¹¡£

¡¡¤½¤Î¤¿¤á»Ò¥¯¥é¥¹¤Ç¤Ï¡¢¿Æ¥¯¥é¥¹¤Ë­¤ê¤Ê¤¤¾ðÊó¤ä¡¢¿Æ¥¯¥é¥¹¤Î¥á¥½¥Ã¥ÉÆâÍƤËÂФ·¤Æ½¤Àµ¤·¤¿¤¤½èÍý¤À¤±¤òµ­½Ò¤¹¤ë¤³¤È¤Ç¡¢¿Æ¥¯¥é¥¹¤Î½èÍý¤â´Þ¤á¤Æ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£


¿ÂÖÀ­¡¡¡¼¥á¥½¥Ã¥É¤Î¿¶¤ëÉñ¤¤¤òÊѤ¨¤ë¡¼


¡¡»Ò¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¿Æ¥¯¥é¥¹¤Î¥á¥½¥Ã¥É¤ËÊѹ¹¤ò²Ã¤¨¤¿¾ì¹ç¡¢¿Æ¥¯¥é¥¹¤ÎƱ¥á¥½¥Ã¥É¼«ÂΤϼ¹Ԥµ¤ì¤Þ¤¹¤¬¡¢¿Æ¥¯¥é¥¹Æâ¤Î½èÍý¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£
¤³¤ì¤ò¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¤È¤¤¤¤¤Þ¤¹¡£

¡¡¥ª¡¼¥Ð¡¼¥é¥¤¥É¤Ç¤­¤ë¥á¥½¥Ã¥É¤Ï¡¢¿Æ¥¯¥é¥¹¤Ç virtual ¥­¡¼¥ï¡¼¥É¤òÉÕ¤±¤ÆÀë¸À¤·¤Æ¤¤¤ë²¾Áۥ᥽¥Ã¥É¤«¡¢
º£²ó¤Ï¤Þ¤À°·¤¤¤Þ¤»¤ó¤¬¿Æ¥¯¥é¥¹¤Ç abstract ¥­¡¼¥ï¡¼¥É¤òÉÕ¤±¤ÆÀë¸À¤·¤Æ¤¤¤ëÃê¾Ý¥á¥½¥Ã¥É¤Î¤¤¤º¤ì¤«¤Î¤ß¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¤ò¹Ô¤¦¤È¡¢¿Æ¥¯¥é¥¹¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤Ï¤¹¤Ù¤Æ¾å½ñ¤­¤µ¤ì¤Æ̵»ë¤µ¤ì¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¿Æ¥¯¥é¥¹¤Î¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤Ë²Ã¤¨¤Æ¡¢»Ò¥¯¥é¥¹¤Î½èÍý¤òÄɲä·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿¥á¥½¥Ã¥ÉÆâ¤Ë base.¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿¥á¥½¥Ã¥É̾(); ¤òµ­½Ò¤·¤Þ¤¹¡£
¾Ü¤·¤¤»È¤¤Êý¤Ë¤Ä¤¤¤Æ¤ÏŤ¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤¿¤áÊ̤Υڡ¼¥¸¤Ç¹Ô¤¤¤Þ¤¹¤¬¡¢¤Þ¤º¤Ï¤´¼«Ê¬¤Ç·Ñ¾µ¤Ë¤Ä¤¤¤ÆÄ´¤Ù¤Æ¤ß¤Þ¤·¤ç¤¦¡£

¡¡°Ê¾å¤Î¤³¤È¤è¤ê¡¢¥ª¡¼¥Ð¡¼¥é¥¤¥É¤ò¹Ô¤ï¤Ê¤¤¥á¥½¥Ã¥É¤Ï¡¢»Ò¥¯¥é¥¹¤Ç¿Æ¥¯¥é¥¹¤Î½èÍý¤ò¾å½ñ¤­¤¹¤ëɬÍפ¬¤Ê¤¤¥á¥½¥Ã¥É¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
¿Æ¥¯¥é¥¹¤Ë½ñ¤«¤ì¤Æ¤¤¤ëÊÑ¿ôƱÍÍ¡¢»Ò¥¯¥é¥¹¤Ç¤Îµ­½Ò¤ÏÉÔÍפˤʤê¤Þ¤¹¡£

¡¡¤³¤Î¤è¤¦¤Ë¡ÖƱ¤¸Ì¾Á°¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤·¡¢°Û¤Ê¤ë¿¶¤ëÉñ¤¤¤ò¤¹¤ë¤³¤È¡×¤ò¿ÂÖÀ­¤È¤¤¤¤¤Þ¤¹¡£
¤³¤ì¤ò¼Â¸½¤¹¤ë¤¿¤á¤Îµ¡Ç½¤¬²¾Áۥ᥽¥Ã¥É(Ãê¾Ý¥á¥½¥Ã¥É)¤Ç¤¢¤ê¡¢Ãê¾Ý²½¤È¤¤¤¦¹Í¤¨Êý¤Ë¤Ê¤ê¤Þ¤¹¡£


¡ãoverride(¥ª¡¼¥Ð¡¼¥é¥¤¥É) ¥­¡¼¥ï¡¼¥É¡ä


¡¡abstract ¥­¡¼¥ï¡¼¥É¤Ë¤è¤ëÃê¾Ý¼ÂÁõ¤ä¡¢virtual ¥­¡¼¥ï¡¼¥É¤Ë¤è¤ë²¾ÁÛ¼ÂÁõ¤ËÂФ·¤Æ¼Â¹Ô¤Ç¤­¤ëµ¡Ç½¤Ç¤¹¡£
¾åµ­¤Î£²¤Ä¤Î¥­¡¼¥ï¡¼¥É¤ò»ý¤Ä¥á¥½¥Ã¥É¤ËÂФ·¤Æ¡¢¾åµ­Éôʬ¤ò override ¤ËÊѹ¹¤¹¤ë¤³¤È¤Ç¡¢½èÍý¤ò³ÈÄ¥¤·¤¿¤ê¡¢½ñ¤­´¹¤¨¤¿¤ê¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡¤³¤Î¤È¤­¡¢¥á¥½¥Ã¥É¤Î¥¢¥¯¥»¥¹½¤¾þ»Ò¤òÊѹ¹¤¹¤ë¤³¤È¤Ï½ÐÍè¤Þ¤»¤ó¡£
Î㤨¤Ð¡¢public virtual ¥á¥½¥Ã¥É¤Ç¤¢¤ì¤Ð¡¢public override ¥á¥½¥Ã¥É¤Î¤è¤¦¤Ë¡¢¤¢¤¯¤Þ¤Ç¤âƱ¤¸¥¢¥¯¥»¥¹½¤¾þ»Ò¤Ç¤Î¼ÂÁõ¤Ë¤Ê¤ê¤Þ¤¹¡£

¡ã¿Æ¥¯¥é¥¹¤Ë¤¢¤ë²¾Áۥ᥽¥Ã¥É¡ä
    public virtual IEnumerator ExecuteEventCoroutine() {

        // ³Æ¥¤¥Ù¥ó¥È¤Î½èÍýµ­½Ò¤¹¤ë

    }

¡¡¢­¡¡

¡ãÇÉÀ¸(»Ò)¥¯¥é¥¹¤Ç¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¼ÂÁõ¡ä
    public override IEnumerator ExecuteEventCoroutine() {  //  ¢«¡¡¥¢¥¯¥»¥¹½¤¾þ»Ò¤ÏƱ¤¸¥ì¥Ù¥ë¤Ë¤¹¤ë

        string npcScenario = GetComponent<NonPlayerCharacter>().npcData.npcScenario;
        
        //NPC¥·¥Ê¥ê¥ª¤ÎºîÀ®
        yield return StartCoroutine(AdvEngineController.instance.JumpScenarioAsync(npcScenario, null));
    } 

¡¡¥ª¡¼¥Ð¡¼¥é¥¤¥É¤È¤¤¤¦Ã±¸ì¤Î»ý¤Ä°ÕÌ£¤ÎÄ̤ê¤Ç¡¢¤³¤Î½èÍý¤ò¹Ô¤Ã¤¿¿Æ¥¯¥é¥¹Â¦¤Ëµ­½Ò¤µ¤ì¤Æ¤¤¤¿²¾Áۥ᥽¥Ã¥ÉÆâ¤Î½èÍý¤Ï¾å½ñ¤­¤Þ¤¹¡£
¤â¤·¤â¿Æ¥¯¥é¥¹¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë²¾Áۥ᥽¥Ã¥ÉÆâ¤Î½èÍý¤âÍøÍѤ·¤¿¾å¤Ç¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿¤¤¾ì¹ç¡¢base ¥­¡¼¥ï¡¼¥É¤òÍøÍѤ·¤Þ¤¹¡£¤³¤Á¤é¤Ï¼¡¤ËÀâÌÀ¤·¤Þ¤¹¡£

¡¡¿Æ¥¯¥é¥¹¤Ë¤¢¤ë virtual ¥­¡¼¥ï¡¼¥É¡¢¤¢¤ë¤¤¤Ï abstract ¥­¡¼¥ï¡¼¥É¤È override ¥­¡¼¥ï¡¼¥É¤È¤Ï¡¢£±ÂУ±¤Ç¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ë¥¤¥á¡¼¥¸¤Ç¤¹¡£


»²¹Í¥µ¥¤¥È
MicroSoft
override (C# ¥ê¥Õ¥¡¥ì¥ó¥¹)


¡ãbase(¥Ù¡¼¥¹) ¥­¡¼¥ï¡¼¥É¡ä


¡¡override ¥­¡¼¥ï¡¼¥É¤òÍøÍѤ·¤Æ²¾Áۥ᥽¥Ã¥É¤òÊѹ¹¤¹¤ëºÝ¡¢
¿Æ¥¯¥é¥¹¤Ç¤Î¼ÂÁõÆâÍƤòÍøÍѤ·¤Æ³ÈÄ¥¤·¤¿¤¤¾ì¹ç¤È¡¢¤Þ¤ë¤´¤È½ñ¤­´¹¤¨¤¿¤¤¾ì¹ç¤È¤¬¤¢¤ê¤Þ¤¹¡£
¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É½èÍý¤Ï´ðËÜŪ¤Ë¾å½ñ¤­¤Ç¤¹¤Î¤Ç¡¢´Ý¤´¤È½ñ¤­´¹¤ï¤ê¤Þ¤¹¡£

¡¡¿Æ¥¯¥é¥¹¤Ë¤¢¤ë²¾Áۥ᥽¥Ã¥É¤Î½èÍý¤ò»Ä¤·¤¿¾å¤Ç¡¢³ÈÄ¥¤¹¤ë·Á¤Ç¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¤ò¹Ô¤¤¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢base ¥­¡¼¥ï¡¼¥É¤ò»È¤Ã¤Æ¼ÂÁõ¤·¤Þ¤¹¡£

¡¡µ­½Ò¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢base. ¤Ë³¤±¤Æ¿Æ¥¯¥é¥¹¤Ë¤¢¤ë²¾Áۥ᥽¥Ã¥É¤Î¥á¥½¥Ã¥É̾¤È°ú¿ô¤òÀë¸À¤·¤Þ¤¹¡£
½èÍý¤ò½ñ¤¯½çÈ֤ˤâÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¥×¥í¥°¥é¥à¤Ï¾å¤«¤é½çÈ֤˼¹Ԥµ¤ì¤Þ¤¹¤Î¤Ç¡¢³ÈÄ¥¤·¤¿½èÍý¤ËÂФ·¤Æ¤É¤Î¥¿¥¤¥ß¥ó¥°¤Ç¿Æ¥¯¥é¥¹¤Î½èÍý¤ò¼Â¹Ô¤¹¤ë¤«¤ò¹Í¤¨¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£


¡¡Î㤨¤Ð¡¢¿Æ¥¯¥é¥¹¤Î²¾Áۥ᥽¥Ã¥É¤¬²¼µ­¤Î¤è¤¦¤Ê¾õÂ֤Ǥ¢¤Ã¤¿¤È¤·¤Þ¤¹¡£

    public virtual IEnumerator ExecuteEventCoroutine() {

        Debug.Log("²¾Áۥ᥽¥Ã¥É¤Ï");
        Debug.Log("½èÍý¤ò½ñ¤­´¹¤¨¤Æ");
        Debug.Log("¾å¼ê¤Ë»È¤ª¤¦");

        yield return null;
    } 

¡¡¾åµ­¤Î¼ÂÁõ¤Î¾ì¹ç¡¢¿Æ¥¯¥é¥¹¤Î½èÍý¤Ë²Ã¤¨¤Æ¡¢»Ò¥¯¥é¥¹¤Î½èÍý¤¬¼ÂÁõ¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢¼ÂºÝ¤Ë¤Ï¼¡¤Î¤è¤¦¤ÊÆâÍƤˤʤê¤Þ¤¹¡£

¡ãbase ¥­¡¼¥ï¡¼¥É¤òÍøÍѤ·¤¿¾ì¹ç¤Î½èÍý­¡¡ä
    public override IEnumerator ExecuteEventCoroutine() {

        base.ExecuteEventCoroutine();

        string npcScenario = GetComponent<NonPlayerCharacter>().npcData.npcScenario;
        
        //NPC¥·¥Ê¥ê¥ª¤ÎºîÀ®
        yield return StartCoroutine(AdvEngineController.instance.JumpScenarioAsync(npcScenario, null));
    } 

¡¡¡¡¤³¤Î¾ì¹ç¡¢¼ÂºÝ¤Ë¤Ï¡¡¢­¡¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

    public override IEnumerator ExecuteEventCoroutine() {


////*  base.ExecuteEventCoroutine ¤Ç¼ÂÁõ¤µ¤ì¤ë¿Æ¥¯¥é¥¹¤Î½èÍý  *////


        Debug.Log("²¾Áۥ᥽¥Ã¥É¤Ï");
        Debug.Log("½èÍý¤ò½ñ¤­´¹¤¨¤Æ");
        Debug.Log("¾å¼ê¤Ë»È¤ª¤¦");

        yield return null;


////*  ¤³¤Î½èÍý¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë  *////


        string npcScenario = GetComponent<NonPlayerCharacter>().npcData.npcScenario;
        
        //NPC¥·¥Ê¥ê¥ª¤ÎºîÀ®
        yield return StartCoroutine(AdvEngineController.instance.JumpScenarioAsync(npcScenario, null));
    } 



¡¡¤Þ¤¿¡¢base.ExecuteEventCoroutine ¤ò²¼Â¦¤Ë½ñ¤¤¤¿¾ì¹ç

¡ãbase ¥­¡¼¥ï¡¼¥É¤òÍøÍѤ·¤¿¾ì¹ç¤Î½èÍý­¢¡ä
    public override IEnumerator ExecuteEventCoroutine() {

        string npcScenario = GetComponent<NonPlayerCharacter>().npcData.npcScenario;
        
        //NPC¥·¥Ê¥ê¥ª¤ÎºîÀ®
        yield return StartCoroutine(AdvEngineController.instance.JumpScenarioAsync(npcScenario, null));

        base.ExecuteEventCoroutine();
    } 

¡¡¡¡¤³¤Î¾ì¹ç¡¢¼ÂºÝ¤Ë¤Ï¡¡¢­¡¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

    public override IEnumerator ExecuteEventCoroutine() {

        string npcScenario = GetComponent<NonPlayerCharacter>().npcData.npcScenario;
        
        //NPC¥·¥Ê¥ê¥ª¤ÎºîÀ®
        yield return StartCoroutine(AdvEngineController.instance.JumpScenarioAsync(npcScenario, null));


////*  base.ExecuteEventCoroutine ¤Ç¼ÂÁõ¤µ¤ì¤ë¿Æ¥¯¥é¥¹¤Î½èÍý  *////


        Debug.Log("²¾Áۥ᥽¥Ã¥É¤Ï");
        Debug.Log("½èÍý¤ò½ñ¤­´¹¤¨¤Æ");
        Debug.Log("¾å¼ê¤Ë»È¤ª¤¦");

        yield return null;


////*  ¤³¤Î½èÍý¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë  *////


    } 

¡¡base ¤Î½ñ¤«¤ì¤Æ¤¤¤ë°ÌÃ֤ˤè¤Ã¤Æ¡¢½èÍý¤µ¤ì¤ë½çÈÖ¤¬ÊѲ½¤·¤Æ¤¤¤Þ¤¹¡£



¡¡base ¤òµ­½Ò¤¹¤ì¤Ð¡¢¤½¤Î½èÍý¤ÎÆâÍƤȤ·¤Æ¤Ï¿Æ¥¯¥é¥¹¤Î½èÍý¤¬¤½¤Î¤Þ¤ÞŬÍѤµ¤ì¤Þ¤¹¤Î¤Ç¡¢Èó¾ï¤ËÊØÍø¤Ç¤¹¡£
Æä˿ƥ¯¥é¥¹¤Ç¤Î²¾Áۥ᥽¥Ã¥ÉÆâ¤Î½èÍý¤¬Â¿¤¤¤Û¤É¡¢£±¹Ô¤Î base ¥­¡¼¥ï¡¼¥É¤Ë¤è¤Ã¤Æ¼ÂÁõ¤µ¤ì¤ë½èÍý¤â¿¤¯¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢²¸·Ã¤ÏÂ礭¤¯¤Ê¤ê¤Þ¤¹¡£

¡¡µÕ¤Ë¹Í¤¨¤ë¤È¡¢¿Æ¥¯¥é¥¹¤Ë¤ª¤±¤ë¥á¥½¥Ã¥É¤ÎµóÆ°¤ò¤·¤Ã¤«¤ê¤ÈÍý²ò¤·¤Æ¤¤¤Ê¤¤¤È¡¢¥¯¥é¥¹¤Î·Ñ¾µ¤òÍøÍѤ·¤¿¥×¥í¥°¥é¥à¤òÁȤ߹þ¤á¤Ê¤¤¡¢¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£



¡¡¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿¥á¥½¥Ã¥É¤Ç¤Ï¡¢base ¥­¡¼¥ï¡¼¥É¤¬¤Ê¤¤¸Â¤ê¡¢¿Æ¥¯¥é¥¹¤Ç¤Î½èÍý¤ÎÆâÍƤÏÈ¿±Ç¤µ¤ì¤Ê¤¤(¾å½ñ¤­¤µ¤ì¤ë)¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
Î㤨¤Ð¡¢º£²ó¤Î¤è¤¦¤Ë base ¥­¡¼¥ï¡¼¥É¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢»Ò¥¯¥é¥¹¤Ç¥ª¡¼¥Ð¡¼¥é¥¤¥É¤µ¤ì¤¿½èÍý¤Î¤ß¤¬¼ÂÁõ¤µ¤ì¤Þ¤¹¡£


¡ãbase ¥­¡¼¥ï¡¼¥É¤¬¤Ê¤¤¾ì¹ç¤Î½èÍý¡ä
    protected override IEnumerator ExecuteEventCoroutine() {

        string npcScenario = GetComponent<NonPlayerCharacter>().npcData.npcScenario;
        
        //NPC¥·¥Ê¥ê¥ª¤ÎºîÀ®
        yield return StartCoroutine(AdvEngineController.instance.JumpScenarioAsync(npcScenario, null));


¡¡¡¡¡¡¡¡//  base.ExecuteEventCoroutine ¤Ç¼ÂÁõ¤µ¤ì¤ë¿Æ¥¯¥é¥¹¤Î½èÍý¤¬¤Ê¤¤¤Î¤Ç
¡¡¡¡¡¡¡¡//¡¡Debug.Log ¤ò£³¤Ä½Ð¤¹½èÍý¤ä¡¢yield return null ¤Î½èÍý¤ÏȯÀ¸¤·¤Ê¤¤

    } 


¡ã»²¹Í¥µ¥¤¥È¡ä
MicroSoft
base (C# ¥ê¥Õ¥¡¥ì¥ó¥¹)
++C++ // ̤³ÎǧÈô¹Ô C ÍÍ
·Ñ¾µ


Ì¿Îá¤ò¼õ¤±¤ë¦¤Îµ¡Ç½¤ÎºîÀ®


¡¡¥¤¥Ù¥ó¥È¤Î¼Â¹ÔÌ¿Îá¤ò¥×¥ì¥¤¥ä¡¼Â¦(¥Õ¥¡¥ß¥³¥óËÜÂÎ)¤«¤é¼õ¤±¼è¤ê¡¢¼ÂºÝ¤Ë¥¤¥Ù¥ó¥È¤ò¼Â¹Ô¤¹¤ë¦(¥²¡¼¥à¤òµ¯Æ°¤¹¤ë)¤Î¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£
¤³¤³¤Ç¤Ï GameEventHandler ¥¯¥é¥¹¤òºîÀ®¤·¡¢¤³¤Î¥¯¥é¥¹¤Ë¤Æ GameEvent ¤¬¼Â¹Ô¤Ç¤­¤ë¤è¤¦¤Ë½èÍý¤òºîÀ®¤·¤Þ¤¹¡£

¡¡¤½¤Î¤¿¤á¤³¤Î¥¯¥é¥¹¤Ï¡¢¥¤¥Ù¥ó¥È¤ò¼Â¹Ô¤¹¤ë¦(NPC ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¢ÊõÈ¢¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ê¤É)¤Ë¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£
°ì½ï¤Ë GameEventBase ¤ò·Ñ¾µ¤·¤Æ¤¤¤ë»Ò¥¯¥é¥¹¤ò¥¢¥¿¥Ã¥Á¤·¡¢¤½¤ì¤Ë¤è¤ê¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÌò³ä(¥½¥Õ¥È¤ÎÃæ¿È)¤òÀßÄꤷ¤Þ¤¹¡£
¤Þ¤¿¡¢Ì¿Îá¤ò¼õ¤±¼è¤ë¦¤Î½èÍý¤È¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Æ¡Ö¼Â¹Ô¤¹¤ë¥¤¥Ù¥ó¥È¤òÅÐÏ¿¡×¤·¤Þ¤¹¡£

¡¡¤¤¤Þ¤Þ¤Ç¤È¤Ï°Û¤Ê¤ê¡¢¤³¤Î GameEventHandler ¥¯¥é¥¹¤Ç¤Ï¼Â¹Ô¤¹¤ë GameEvent ¤Î¼ïÎà¤ÏÆÃÄꤷ¤Þ¤»¤ó¡£
GameEvent ¤Ç¤¢¤ì¤Ð¼«Æ°Åª¤Ë½èÍý¤ò¼Â¹Ô¤·¤Æ¤¤¤Þ¤¹¡£¤³¤³¤Þ¤Ç¤Ç¤¹¡£

¡¡¤Ä¤Þ¤ê¡¢¥½¥Õ¥È¤Î¼ïÎà¤ÏÃΤé¤Ê¤¤¤â¤Î¤Î¡¢¥Õ¥¡¥ß¥³¥ó¤Î¥½¥Õ¥È¤Ç¤¢¤ì¤Ðµ¯Æ°¤Ï¤¹¤ë¤È¤¤¤¦¥¤¥á¡¼¥¸¤Ç¤¹¡£

¡¡¼ÂºÝ¤Ë¼Â¹Ô¤µ¤ì¤ë¥¤¥Ù¥ó¥È¤Ï¡¢ÅÐÏ¿¤·¤Æ¤¤¤ë GameEvent (¥½¥Õ¥È¤ÎÃæ¿È)¤Ë°Í¸¤·¤Þ¤¹¡£
²ñÏÃ¥¤¥Ù¥ó¥ÈÍѤΠGameEvent ¤¬¼Â¹Ô¤µ¤ì¤ë¤³¤È¤â¤¢¤ì¤Ð¡¢Â¾¤Î¥¤¥Ù¥ó¥È¤¬¼Â¹Ô¤µ¤ì¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£

¡¡Ãê¾Ý²½¤Ë¤è¤ê¡¢¤³¤³¤Ç¼Â¹Ô¤µ¤ì¤¿¥á¥½¥Ã¥É¤¬¡¢Àè¤Û¤ÉºîÀ®¤·¤¿»Ò¥¯¥é¥¹¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¤µ¤ì¤¿¥á¥½¥Ã¥É¤Ë¤è¤Ã¤Æ
½èÍý¤ÎÆâÍƤ¬ÊѤï¤ë(¿¶¤ëÉñ¤¤¤òÊѤ¨¤ë)¤è¤¦¤Ë¤·¤Æ¤¤¤ë¤¿¤á¤Ç¤¹¡£

¡¡¡Ö¥²¡¼¥à¤òµ¯Æ°¤¹¤ë¡×¤À¤±¤Î½èÍý¤Ë¤·¤Æ¤¤¤ë¤Î¤Ç¡¢º£¤Þ¤Ç¤Îʬ´ô³Îǧ¤Î½èÍý¤ò°ì¸µ²½¤µ¤»¤ë¤³¤È¤¬½ÐÍè¤Æ¤¤¤Þ¤¹¡£


<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹¡£



Ì¿Îá¤ò¼õ¤±¤ë¦¤ÎÀßÄê


¡¡GameEventHandler ¥¯¥é¥¹¤È¡¢²ñÏÃ¥¤¥Ù¥ó¥ÈÍѤΠGameEventNpcTalk ¥¯¥é¥¹¤ò NPC ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£
»Ò¥¯¥é¥¹¤¬·Ñ¾µ¤·¤Æ¤¤¤ë¿Æ¥¯¥é¥¹¤Ï¥¢¥¿¥Ã¥Á¤¹¤ëɬÍפϤʤ¯¡¢»Ò¥¯¥é¥¹¤Î¤ß¤ò¥¢¥¿¥Ã¥Á¤¹¤ì¤ÐÌäÂꤢ¤ê¤Þ¤»¤ó¡£¼«Æ°Åª¤Ë¿Æ¥¯¥é¥¹¤Îµ¡Ç½¤â¼ÂÁõ¤µ¤ì¤Þ¤¹¡£

¡¡¤¤¤Ä¤â¼«ºî¤·¤Æ¤¤¤ë¥¹¥¯¥ê¥×¥È¤â MonoBehaviour ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤Þ¤¹¤¬¡¢MonoBehaviour ¥¯¥é¥¹¤ò¥¢¥¿¥Ã¥Á¤·¤¿¤³¤È¤Ï¤Ê¤¤¤Ï¤º¤Ç¤¹¡£



¡¡GameEventHandler ¥¯¥é¥¹¤¬¥¤¥Ù¥ó¥È¤ò´ÉÍý¤·¤Þ¤¹¤Î¤Ç¡¢GameEvent ÊÑ¿ô¤Ë GameEventNpcTalk ¥¯¥é¥¹(¤³¤Î NPC ¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤½¤Î¤â¤Î)¤ò¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡¤³¤ì¤Ç¥¤¥Ù¥ó¥È¤¬È¯²Ð(¼Â¹Ô¤µ¤ì¤¿)¤·¤¿¤È¤­¡¢GameEvent ÊÑ¿ô¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë GameEventNpcTalk ¥¯¥é¥¹¤Î¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£


¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü



Ì¿Îá¤ò¼Â¹Ô¤¹¤ë¦¤Îµ¡Ç½¤ÎºîÀ®(´û¸½èÍý¤Î½¤Àµ)


¡¡PlayerController ¥¯¥é¥¹¤Î½èÍý¤ò½¤Àµ¤·¤Þ¤¹¡£

¡¡¤Þ¤º Action ¥¯¥é¥¹¤Î½èÍý¤ò½¤Àµ¤·¡¢¥Ü¥¿¥ó¤ò²¡¤·¡¢Ray ¤Ë¤è¤ëȽÄê¤ò¹Ô¤Ã¤¿¸å¤Î½èÍý¤òÊѹ¹¤·¤Þ¤¹¡£
¤¤¤Þ¤Þ¤Ç¤Ï³Æ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¹¤ò TryGetComponent ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æʬ´ô¤µ¤»¤Æ¤¤¤Þ¤·¤¿¤¬¡¢
¤³¤ÎÉôʬ¤ò³Æ¿Æ¥¯¥é¥¹¤Î³Îǧ¤ò¹Ô¤¤¡¢ÆÃÄê¤Î¥á¥½¥Ã¥É¤ÎÌ¿Îá¤ò¼Â¹Ô¤¹¤ë½èÍý¤ËÊѤ¨¤Þ¤¹¡£
¤½¤¦¤¹¤ë¤³¤È¤Ç¡¢³Îǧ¤Î½èÍý¤¬Ã»½Ì²½¤µ¤ì¤Þ¤¹¡£

¡¡¤Þ¤¿¡¢¥Ü¥¿¥ó¤Î²¡²¼½èÍý¤Ï¤ÎȽÄê Action ¥á¥½¥Ã¥ÉÆâ¤Ç¤Ï¤Ê¤¯¡¢ Update ¥á¥½¥Ã¥É¤ÇȽÄꤹ¤ë¤è¤¦¤ËÊѹ¹¤·¤Þ¤¹¡£
¤³¤¦¤¹¤ë¤³¤È¤Ç»öÁ°¤Ë Action ¥á¥½¥Ã¥É¤ò¸Æ¤Ö¤«¸Æ¤Ð¤Ê¤¤¤«È½Äê½ÐÍè¤Þ¤¹¡£(¤¤¤Þ¤Ï¡¢¼Â¹Ô¤Ç¤­¤ë¤«¤ï¤«¤é¤Ê¤¯¤Æ¤â Action ¥á¥½¥Ã¥É¤ò¸Æ¤ó¤Ç¤·¤Þ¤¦)

¡¡¼ÂºÝ¤Ë¥¤¥Ù¥ó¥È¤ò¼Â¹Ô¤µ¤»¤ë¤¿¤á¤Î¥á¥½¥Ã¥É¤ä¡¢¤½¤ì¤Ë´Ø¤ï¤ë¥á¥½¥Ã¥É¤ò¹ç·×£´¤ÄÄɲä·¤Þ¤¹¡£
¡¡

PlayerController.cs
¡ã½¤ÀµÊ¬¡ä

<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹¡£


PlayerController.cs
¡ãÄɲÃʬ¡ä

<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹¡£



¡ã¥¯¥é¥¹¤Î·Ñ¾µ»þ¤ËÍøÍѤǤ­¤ë¡¢²¾ÁÛ(Ãê¾Ý)¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É½èÍý¡¡¡¼Â¿ÂÖÀ­(¥Ý¥ê¥â¡¼¥Õ¥£¥º¥à)¡¼¡ä


¡¡Â¿ÂÖÀ­(¥Ý¥ê¥â¡¼¥Õ¥£¥º¥à)¤È¤Ï¡¢ Ʊ¤¸¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤·Ì¿Îá¤ËÂФ·¤Æ¡¢°Û¤Ê¤ë¥ª¥Ö¥¸¥§¥¯¥È¤¬°Û¤Ê¤ëÆ°ºî¤ò¤¹¤ë(¿¶¤ëÉñ¤¤¤òÊѤ¨¤ë)¤³¤È¤ò¸À¤¤¤Þ¤¹¡£
¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥×¥í¥°¥é¥ß¥ó¥°¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤ª¤±¤ë¡¢½ÅÍפʹͤ¨Êý¡¦³µÇ°¤Ë¤Ê¤ê¤Þ¤¹¡£
++C++; // ̤³ÎǧÈô¹Ô C ÍÍ
C# ¤Ë¤è¤ë¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç ¿ÂÖÀ­
https://ufcpp.net/study/csharp/oo_polymorphism.htm...



¡¡º£²ó¤Î¼ÂÁõ¤Î¥±¡¼¥¹¤Ç¤¢¤ì¤Ð¡¢GameEventBase ¥¯¥é¥¹¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë ExecuteGameEventCoroutine ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤È
Ʊ¤¸¥á¥½¥Ã¥É¤Ç¤¢¤ë¤Ë¤â¤«¤«¤ï¤é¤º¼Â¹Ô¤µ¤ì¤ë½èÍý¤¬°Û¤Ê¤ë¡¡¡¼¿¶¤ëÉñ¤¤¤òÊѤ¨¤ë¡¼¡¡¤³¤È¤ò»Ø¤·¤Æ¤¤¤Þ¤¹¡£



¡¡¤¤¤Þ¤Þ¤Ç¤Î½èÍý¤È¤Ï¡¢¤É¤ÎÉôʬ¤¬°Û¤Ê¤Ã¤Æ¤ª¤ê¡¢¤É¤³¤¬¥Ý¥¤¥ó¥È¤Ç¤¢¤ë¤«¡¢¹Í¤¨¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

¡¡¤Þ¤ºÂ礭¤ÊÊѹ¹ÅÀ¤È¤·¤Æ¡¢¥¯¥é¥¹¤Ë¤è¤ëʬ´ô¤Î½èÍý¤Ï¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£

¡¡¥¿¥°¤ä¥¯¥é¥¹¤Ë¤è¤ëʬ´ô½èÍý¤Î¾ì¹ç¤Ë¤Ï¡¢Ê¬´ô¸å¡¢¤µ¤é¤Ë¤½¤Î¥¯¥é¥¹¤´¤È¤Î¥á¥½¥Ã¥É¤òÆÃÄꤷ¤Ê¤¤¤È½èÍý¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£

¡¡º£²ó¤Î¼ÂÁõ¤Î¾ì¹ç¡¢¥¤¥Ù¥ó¥È¤ÎȽÄê¤Ë¤Ï TryGetComponent ¥á¥½¥Ã¥É¤ÏÍøÍѤ·¤Æ¤¤¤Þ¤»¤ó¡£
(¥¤¥Ù¥ó¥ÈȯÀ¸¸å¡¢NPC ¤Ç¤¢¤ë¤«¤É¤¦¤«¤Ç¤Î¤ßÍøÍѤ·¤Æ¤ª¤ê¡¢¤³¤Î½èÍý¼«ÂÎ¤Ï NPC ¤Î¸þ¤­¤òÊѤ¨¤Æ¤¤¤ë¤À¤±¤Ç¤¹¤Î¤Ç¡¢¥¤¥Ù¥ó¥È½èÍý¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£)
¤Ä¤Þ¤ê¡¢¥¤¥Ù¥ó¥È¤Î¼ïÎà¤òÆÃÄꤹ¤ë¤¿¤á¤Ë¹Ô¤Ã¤Æ¤¤¤¿¥¯¥é¥¹¤Î¥¢¥¿¥Ã¥Á¤ÎȽÄê¤Ï¤·¤Æ¤¤¤Þ¤»¤ó¡£



¡¡¤½¤·¤Æ¤â¤¦£±¤Ä¡£
¡¡¼Â¹Ô¤¹¤ë¥¤¥Ù¥ó¥È¤Ë¤Ä¤¤¤Æ¤â¡¢¤³¤Î¥¯¥é¥¹¤Ç¤Ï¤É¤Î¤è¤¦¤Ê¥¤¥Ù¥ó¥È¤¬¼Â¹Ô¤µ¤ì¤ë¤Î¤«¤òÃΤê¤Þ¤»¤ó¡£
¥¤¥Ù¥ó¥È¤ò¼Â¹Ô¤¹¤ë¡¢¤È¤¤¤¦µ¡Ç½¤À¤±¤ò»ý¤Ã¤Æ¤ª¤ê¡¢¤¢¤È¤Ï¡¢¥¤¥Ù¥ó¥È¦¤Î¥¯¥é¥¹¤Ë½èÍý¤òÅꤲ¤Æ¤¤¤Þ¤¹¡£


¡¡// ³Æ¥¯¥é¥¹¤òȽÄꤹ¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¥¤¥Ù¥ó¥È¤òȯÀ¸¤µ¤»¤ë GameEventHandler ¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤«¤À¤±¤òȽÄꤹ¤ë
  if (hitOject.TryGetComponent(out GameEventHandler gameEventHandler)) {

¡¡¡¡¡¡// ¤³¤³¤Ç¤â¡¢GameEventHandler ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥¤¥Ù¥ó¥È¤ò¼Â¹Ô¤¹¤ë¡¢¤³¤È¤À¤±¤ä¤Ã¤Æ¤¤¤ë
      //     ¢ª ¤É¤ó¤Ê¥¤¥Ù¥ó¥È¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¤«¤ÏÃΤé¤Ê¤¤
      gameEventHandler.ExecuteGameEventCoroutine();
  }

¡¡Èó¾ï¤Ë´Ê·é¤Ë½èÍý¤òµ­½Ò¤Ç¤­¤ë¾å¤Ë¡¢¥¤¥Ù¥ó¥È¤Î¼ïÎबÁý¤¨¤Æ»Ò¥¯¥é¥¹¤¬Áý¤¨¤Æ¤â¡¢
¤½¤Î¥¯¥é¥¹¤¬ GameEventBase ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ì¤Ð¤³¤³¤Ë½èÍý¤ò½ñ¤­Â­¤¹É¬Íפ⤢¤ê¤Þ¤»¤ó¡£
¤³¤ì¤¬¥¯¥é¥¹¤Î·Ñ¾µ¤È¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É½èÍý¤Ë¤è¤Ã¤Æ¿¶¤ëÉñ¤¤¤òÊѤ¨¤ë¤³¤È¤Ç¼ÂÁõ¤Ç¤­¤ëÂ礭¤ÊÍøÅÀ¤Ç¤¹¡£



¡¡¤Ä¤Þ¤ê¡¢¼ÂÁõ¤òÃê¾Ý²½¤·¤Æ¤¤¤¯¤³¤È¤¬½ÐÍè¤ì¤Ð¡¢¼Â¹Ô¦¤ÎÀÕ̳¤Ï¡Ö¥¤¥Ù¥ó¥È¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤ò¼Â¹Ô¤¹¤ë¡×¤³¤È¤À¤±¤Ë¤Ê¤ê¤Þ¤¹¡£
¤É¤ó¤Ê¥¤¥Ù¥ó¥È¤¬µ¯¤³¤ë¤«¤òÃΤëɬÍפϤʤ¯¡¢¥¤¥Ù¥ó¥È¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¼Â¹Ô¤¹¤ë¡¢¤È¤¤¤¦¥·¥¹¥Æ¥à¤¬µ¡Ç½¤¹¤ë¤À¤±¤Ëºî¤êÂؤï¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡¤³¤ÎÃê¾Ý²½¤ÎÀ߷פμÂÁõ¤Ë¤è¤ê¡¢¥Õ¥¡¥ß¥³¥ó¤ÎËÜÂΤε¡Ç½¤È¥½¥Õ¥È¤Îµ¡Ç½¤¬¡¢¤³¤³¤Ç½ÐÍè¾å¤¬¤Ã¤Æ¤¤¤Þ¤¹¡£



¡¡¥¯¥é¥¹¤Î·Ñ¾µ¤òÍý²ò¤¹¤ë¤Î¤ÏÆñ¤·¤¤¤Ç¤¹¤¬¡¢¤½¤ì¤À¤±¤Îµ¡Ç½¤ä²¸·Ã¤¬¼õ¤±¤é¤ì¤ë¤³¤È¤ò¹Í¤¨¤ë¤È¡¢À§Èó½¬ÆÀ¤·¤Æ¤¤¤¿¤À¤­¤¿¤¤µ»½Ñ¤Ë¤Ê¤ê¤Þ¤¹¡£
¤Þ¤¿¡¢¤³¤¦¤¤¤Ã¤¿½èÍý¤òÍý²ò¤·¤Æ¤¤¤¯¤³¤È¤Ç¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤â´·¤ì¤Æ¤¤¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡·«¤êÊÖ¤·½èÍý¤ò¹Í¤¨¤Æµ­½Ò¤·¡¢¼«Ê¬¤Ç¤â¥¯¥é¥¹¤ò·Ñ¾µ¤·¤¿¥¯¥é¥¹¤ò¼«ºî¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£


¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤¹¤ë


¡¡¤¤¤Þ¤Þ¤Ç¤ÈƱ¤¸¤è¤¦¤Ë NPC ¤ËÂФ·¤Æ²ñÏÃ¥¤¥Ù¥ó¥È¤¬È¯À¸¤¹¤ë¤«¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£


¤Þ¤È¤á


¡¡¤¹¤Ç¤Ëµ¤¤Å¤«¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢GameEventHandler ¤Ï¡¢¥¤¥Ù¥ó¥È¤òµ¯Æ°¤¹¤ë¤À¤±¤Ç¤¹¡£
¤½¤Î¤È¤­¤Ë¤Ï GameEvent ÊÑ¿ô¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥¤¥Ù¥ó¥È¤òµ¯Æ°¤·¤Þ¤¹¡£

¡¡GameEvent ÊÑ¿ô¤Ë¤Ï¡¢GameEventBase ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ë»Ò¥¯¥é¥¹¤Ç¤¢¤ì¤Ð¡¢¤É¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤âÅÐÏ¿²Äǽ¤Ç¤¹¡£
¤Ä¤Þ¤ê¡¢¥¤¥Ù¥ó¥È¤Ç¤¢¤ì¤Ð(GameEventBase ¤ò·Ñ¾µ¤·¤Æ¤¤¤ì¤Ð)¡¢¥¤¥Ù¥ó¥È¤ÎÃæ¿È¤òÃΤäƤ¤¤ëɬÍפϤʤ¤(»Ò¥¯¥é¥¹¤¬¤Ê¤ó¤Ç¤¢¤ë¤Î¤«¤ÏÃΤé¤Ê¤¯¤Æ¤âÅÐÏ¿¤Ç¤­¤ë)¤È¤¤¤¦¾õÂ֤Ǥ¹¡£

¡¡¤³¤ì¤Ï¤É¤¦¤¤¤¦¤³¤È¤«¤È¤¤¤¦¤È¡¢Î㤨¤Ð¡¢ÊõÈ¢ÍѤΥ¤¥Ù¥ó¥È¤ò GameEventBase ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤ÆºîÀ®¤¹¤ì¤Ð¡¢
º£²ó¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤Î¤è¤¦¤Ë GameEventHandler ¤¬µ¯Æ°¤·¤Æ¤¯¤ì¤Þ¤¹¡£
¤Ê¤¼¤Ê¤é¡¢GameEventHandler ¤Ï¥¤¥Ù¥ó¥È¤Ç¤¢¤ì¤Ð¡¢¤½¤ì¤¬¤É¤ó¤Ê¥¤¥Ù¥ó¥È¤Ç¤¢¤ë¤«¤ÏÃΤé¤Ê¤¯¤Æ¤â¤¤¤¤¤¿¤á¤Ç¤¹¡£

¡¡Æ±¤¸¤è¤¦¤Ë¡¢¥¢¥¤¥Æ¥à¤ÎÆþ¼ê¥¤¥Ù¥ó¥È¤â¡¢¥­¥ã¥é¤Î¼«Æ°°ÜÆ°¥¤¥Ù¥ó¥È¤â¡¢¥ª¥Ö¥¸¥§¥¯¥È¤ÎÄɲᦺï½ü¤Î¥¤¥Ù¥ó¥È¤â
¤¹¤Ù¤Æ GameEventBase ¤ò·Ñ¾µ¤·¤¿»Ò¥¯¥é¥¹¤òºîÀ®¤¹¤ì¤Ð¡¢¤³¤Î GameEventHandler ¤Î GameEvent ÊÑ¿ô¤ËÅÐÏ¿¤Ç¤­¤Þ¤¹¤Î¤Ç¡¢
¤É¤ó¤Ê¥¤¥Ù¥ó¥È¤Ç¤¢¤Ã¤Æ¤â¡¢GameEventHandler ¤¬¼Â¹Ô¤·¤Æ¤¯¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤½¤·¤Æ¼Â¹Ô¤µ¤ì¤ë¼ÂºÝ¤Î½èÍý¤Ï¡¢³Æ»Ò¥¯¥é¥¹(ºîÀ®¤·¤¿¥¤¥Ù¥ó¥È¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿¥á¥½¥Ã¥É)¤Ë¤è¤ê¡¢¿¶¤ëÉñ¤¤(½èÍý¤ÎÆâÍÆ¡¦¥¤¥Ù¥ó¥È¤ÎÆâÍÆ)¤¬¼«Æ°Åª¤ËÊѤï¤ê¤Þ¤¹¡£



¡¡¤º¤Ã¤È¤ªÏä·¤µ¤»¤Æ¤¤¤¿¤À¤¤¤Æ¤¤¤ëÄ̤ꡢ¥Õ¥¡¥ß¥³¥óËÜÂΤȥ½¥Õ¥È¤Îµ¯Æ°¡¢¤½¤·¤Æ¥½¥Õ¥È¤ÎÃæ¿È¤ÎÌò³äʬô¤¬½ÐÍè¤Æ¤¤¤ë¤Î¤Ç¡¢
°Ê¹ß¤Ï¡¢GameEventBase ¤ò·Ñ¾µ¤·¤¿»Ò¥¯¥é¥¹¤òºî¤ì¤Ð(¿·¤·¤¤¥½¥Õ¥È¤òºî¤ì¤Ð)¡¢¥¤¥Ù¥ó¥È¤òÄɲäǤ­¤Þ¤¹¡£

¡¡¤½¤·¤Æ¡¢GameEventHandler¡Ê¥½¥Õ¥È¤Îµ¯Æ°¡Ë¤ä PlayerController(¥Õ¥¡¥ß¥³¥óËÜÂÎ) ¤Ê¤É¤Î´°À®¤µ¤ì¤Æ¤¤¤ëµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Ï¡¢
º£¸å¥¤¥Ù¥ó¥È¤ÎÁý¸º(»Ò¥¯¥é¥¹¤ÎÁý¸º)¤¬¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢¤½¤ì¤Ë´ØÏ¢¤·¤¿¥¹¥¯¥ê¥×¥È¤Ø¤Î½¤Àµ¤Ï°ìÀÚÉÔÍפǤ¹¡£
(¤â¤Á¤í¤ó¡¢ËÜÂε¡Ç½¤½¤Î¤â¤Î¤ò³ÈÄ¥¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢½¤Àµ¤¬É¬Íפˤʤê¤Þ¤¹¡£)

¡¡¤³¤Î¤è¤¦¤Ë½èÍý¤ÎÃê¾Ý²½¤Ë¤è¤Ã¤ÆÀ߷פµ¤ì¤¿µ¡Ç½¤Ë¤Ï¡¢Êݼ餷¤ä¤¹¤¯¡¢ÈÆÍÑÀ­¤È³ÈÄ¥À­¤Î¹â¤¤µ¡Ç½¤Ë¤Ê¤ê¤Þ¤¹¡£



¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£

¡¡¼¡¤Î¼ê½ç¤Ï¡¡½èÍý¤ÎÃê¾Ý²½¤Ë¤è¤ë¼ÂÁõÎã­£¡¡¤Ç¤¹¡£

¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

Menu



´ðÁÃ

µ»½Ñ/Ãμ±(¼ÂÁõÎã)

3D¥¢¥¯¥·¥ç¥ó¥²¡¼¥à

2D¤ª¤Ï¤¸¤­¥²¡¼¥à(ȯŸÊÔ)

2D¶¯À©²£¥¹¥¯¥í¡¼¥ë¥¢¥¯¥·¥ç¥ó(ȯŸÊÔ)

2D¥¿¥Ã¥×¥·¥å¡¼¥Æ¥£¥ó¥°(³ÈÄ¥ÊÔ)

¥ì¡¼¥¹¥²¡¼¥à(È´¿è)

2DÊüÃÖ¥²¡¼¥à(ȯŸÊÔ)

3D¥ì¡¼¥ë¥¬¥ó¥·¥å¡¼¥Æ¥£¥ó¥°(±þÍÑÊÔ)

3Dæ½Ð¥²¡¼¥à(È´¿è)

2D¥ê¥¢¥ë¥¿¥¤¥à¥¹¥È¥é¥Æ¥¸¡¼

3D¥¿¥Ã¥×¥¢¥¯¥·¥ç¥ó(NavMeshAgent »ÈÍÑ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥«¥¨¥ë¤Î°Ù¤Ë¡Á¡¢¥Ü¥³¥¹¥«¥¦¥©¡¼¥ºÉ÷)

VideoPlayer ¥¤¥Ù¥ó¥ÈϢư¤Î¼ÂÁõÎã

VideoPlayer ¥ê¥¹¥ÈÆ⤫¤é¥à¡¼¥Ó¡¼ºÆÀ¸¤Î¼ÂÁõÎã(ȯŸ)

AR ²èÁüÉÕ¤­¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¤Î¼ÂÁõÎã

AR ¥ê¥¹¥ÈÆ⤫¤éÀ¸À®¤Î¼ÂÁõÎã(ȯŸ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥µ¥Ð¥¤¥Ð¡¼É÷)

private



¤³¤Î¥µ¥¤¥ÈÆâ¤ÎºîÉʤϥæ¥Ë¥Æ¥£¤Á¤ã¤ó¥é¥¤¥»¥ó¥¹¾ò¹à¤Î¸µ¤ËÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£

´ÉÍý¿Í/Éû´ÉÍý¿Í¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹