ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ09·î19Æü(²Ð) 20:51:37ÍúÎò
¡¡¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤È¤Ï¼ç¤Ë¡¢¥×¥í¥°¥é¥à¤ÎÆ°ºî¤ä¿¶¤ëÉñ¤¤¤òÊѤ¨¤ë¤³¤È¤Ê¤¯¡¢ÆâÉô¤ÎÀ߷פ乽¤¤ò¸«Ä¾¤·¡¢¥³¡¼¥É¤ò½ñ¤´¹¤¨¤¿¤ê½ñ¤Ä¾¤·¤¿¤ê¤¹¤ë¤³¤È¤ò»Ø¤·¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢ÉÔ¶ñ¹ç¤òľ¤¹¤¿¤á¤Î½¤Àµ¤Ç¤Ï¤Ê¤¯¡¢¥²¡¼¥à²èÌ̤Îɽ¸½¤ÏÊѤ¨¤ë¤³¤È¤Ê¤¯¡¢¥½¡¼¥¹¥³¡¼¥É¤Î¸«Ä¾¤·¤ò¹Ô¤¤¤Þ¤¹¡£
Æɤߤ䤹¤¤½èÍý¤Ëľ¤·¤¿¤ê¡¢ºÇŬ²½¤ò¿Þ¤ë¤Ù¤¯¡¢½èÍý¤Î¸úΨ²½¤ò¸¡Æ¤¤·¤¿¤ê¡¢¤½¤¦¤¤¤Ã¤¿ÆâÉôŪ¤Ê½èÍý¤ÎºÆ¹½ÃÛ¤ÎÊýË¡¤Ç¤¹¡£
¡¡¥½¡¼¥¹¥³¡¼¥É¤ò½ñ¤¯¤³¤È¤Ë´·¤ì¤Æ¤¤¿¤é¡¢¥¯¥é¥¹Æâ¤Î½èÍý¤ò¸«Ä¾¤·¤Æ¡¢Æɤߤ䤹¤¯¡¢¸úΨ¤Î¤è¤¤½èÍý¤ËÃÖ¤´¹¤¨¤Æ¤¤¤¯ÊýË¡¤ò³Ø½¬¤·¡¢¼ÂÁ©¤·¤Þ¤·¤ç¤¦¡£
¡ã¿·¤·¤¤³Ø½¬ÆâÍÆ¡ä
¡¡¡¦UniRx ¡¡¡¦UniRx.Triggers ¡¡¡¦ObsevableTriggers
¡¡UniRx ¤Ë¤Ï ObsevableTriggers ¤È¤¤¤¦µ¡Ç½¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
Unity ¤Î¥¤¥Ù¥ó¥È´Ø¿ô(Update¡¢OnTrigger¡Á¡¢¤Ê¤É)¤ò Obsevable ¤È¤·¤Æ°·¤¦¤³¤È¤¬¤Ç¤¤ëµ¡Ç½·²¤Ç¤¹¡£
¡¡°ÊÁ°¤ËºîÀ®¤·¤¿ CharaManager ¥¯¥é¥¹¤Î Update ¥á¥½¥Ã¥É¤ò
¤³¤Á¤é¤Î ObsevableTriggers ¤Îµ¡Ç½¤òÍøÍѤ·¤Æ¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤òÄ̤¸¤Æ¡¢¥½¡¼¥¹¥³¡¼¥É¤ò½ñ¤¯¥¹¥¥ë¤Î¥ì¥Ù¥ë¥¢¥Ã¥×¤ò¿Þ¤ê¤Þ¤·¤ç¤¦¡£
¡¡º£²ó¤Ï CharaManager ¤òÎã¤ËÍøÍѤ·¤Þ¤¹¡£
CharaManager.cs
¡¡¥×¥ì¥¤¥ä¡¼Ìò¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¹½À®¤âÊѤï¤ê¤¢¤ê¤Þ¤»¤ó¡£
¡¡¼¡¤ÎÄ̤ê¤Ç¤¹¡£
¹½À®

¿Æ¥¯¥é¥¹¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü(CharaController ¥¯¥é¥¹¤È¥³¥é¥¤¥À¡¼¡¢Rigidbody ¤¬°ì½ï¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤Þ¤¹)

»Ò¥¯¥é¥¹¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü(²èÁü¤È Animator ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤Þ¤¹)

¡¡UniRx ¤Îµ¡Ç½¤ò³èÍѤ¹¤ë¤³¤È¤Ç¡¢½èÍý¤ÎÆ°¤¤ò´Æ»ë(¥ª¥Ö¥¶¡¼¥Ð¡¼)¤·¡¢¥¤¥Ù¥ó¥È¶îÆ°·¿¤Î½èÍý¤ËÊѹ¹¤Ç¤¤Þ¤¹¡£
¡¡Î㤨¤Ð¥Ü¥¿¥ó¤Ç¤¢¤ì¤Ð¡¢¡Ö¥Ü¥¿¥ó¤ò²¡¤¹¡×¤È¤¤¤¦¹Ô°Ù¤ò´Æ»ë¤·¡¢¤³¤Î¾õÂÖ¤¬È¯À¸¤·¤¿¤é»ØÄꤷ¤¿½èÍý¤¬¼Â¹Ô¤µ¤ì¤ë¤è¤¦¤Ëɳ¤Å¤±¤Æ¤ª¤¯¤è¤¦¤Ê½èÍý¤¬¹½ÃۤǤ¤Þ¤¹¡£
¡¡º£²ó¤Ï ReactiveProperty ¤Îµ¡Ç½¤È¡¢ObsevableTriggers ¤Îµ¡Ç½¤òÍøÍѤ·¤Æ¡¢½¾Íè¤Î½èÍý¤ò¥¤¥Ù¥ó¥È¶îÆ°·¿¤Î½èÍý¤Ë¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤·¤Æ¤¤¤¤Þ¤¹¡£
¡¡CharaController ¥¯¥é¥¹Æâ¤Î½èÍý¤òµ¡Ç½Ê̤Ëʬ¤±¤Æ¤ß¤Þ¤·¤ç¤¦¡£
²¼µ¤Î¤è¤¦¤Ê»Åʬ¤±¤Ë¤è¤ëʬÎब¤Ç¤¤ë¤È»×¤¤¤Þ¤¹¡£
¡¦°ÜÆ°¤µ¤»¤ëµ¡Ç½ ¡¦¥¢¥Ë¥á¡¼¥·¥ç¥ó¤ò°ÜÆ°Êý¸þ¤ËƱ´ü¤µ¤»¤ëµ¡Ç½ ¡¦¹¶·â¤¹¤ëµ¡Ç½ ¡¦Hp ¤ò´ÉÍý¤¹¤ëµ¡Ç½ ¡¦¥ì¥Ù¥ë¤È Exp ¤ò´ÉÍý¤¹¤ëµ¡Ç½
¡¡¤³¤Î¤¦¤Á¡¢°ÜÆ°¤µ¤»¤ë½èÍý¤È¥¢¥Ë¥á¡¼¥·¥ç¥ó¤ò°ÜÆ°Êý¸þ¤ËƱ´ü¤µ¤»¤ë½èÍý¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥¡¼ÆþÎϤÎÃͤòƱ¤¸¾ðÊó¤È¤·¤ÆÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¶¦Ä̤¹¤ë½èÍý¤ò¤Þ¤È¤á¤¿¥¯¥é¥¹¤ò£±¤ÄºîÀ®¤·¡¢¤Þ¤¿¡¢¤³¤Î¥¯¥é¥¹¤Ç¡¢¤½¤ì°Ê³°¤Î¥¯¥é¥¹¤ò´ÉÍý¤·¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢´ÉÍý¼Ô(¥Þ¥Í¡¼¥¸¥ã¡¼)¤È¤Ê¤ë¥¯¥é¥¹¤ò¿·¤·¤¯ÍÑ°Õ¤·¡¢Â¾¤Îµ¡Ç½¤ò¤Þ¤È¤á¾å¤²¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡ã¿·¤·¤¯ºî¤ë¡ä
¡¦°ÜÆ°¤µ¤»¤ëµ¡Ç½¤ò»ý¤Ä¥¯¥é¥¹ ¡¦¥¢¥Ë¥á¡¼¥·¥ç¥ó¤ò°ÜÆ°Êý¸þ¤ËƱ´ü¤µ¤»¤ëµ¡Ç½¤ò»ý¤Ä¥¯¥é¥¹ ¡¦¹¶·â¤¹¤ëµ¡Ç½¤ò»ý¤Ä¥¯¥é¥¹ ¡¦¥Þ¥Í¡¼¥¸¥ã¡¼¥¯¥é¥¹
¡¡º£²ó¤Ï Hp ¤ò´ÉÍý¤¹¤ëµ¡Ç½¤È¥ì¥Ù¥ë¤È Exp ¤ò´ÉÍý¤¹¤ëµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Ï¥¯¥é¥¹¤ÏºîÀ®¤·¤Þ¤»¤ó¡£
¤³¤Î³Ø½¬¤òÄ̤¸¤Æµ¡Ç½¤Îʬ³äÊýË¡¤ò¹Í¤¨¤Æ¡¢¼«ºî¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¡¡³Æ¥¯¥é¥¹¤´¤È¤ËÌÀ³Î¤ÊÌò³ä¤òÀߤ±¤ë¤È¤È¤â¤Ë¡¢ÀÕ̳¤Î¤Ê¤¤½èÍý¤Ï½ñ¤¹þ¤Þ¤Ê¤¤¤è¤¦¤ËÇÛθ¤·¤Þ¤¹¡£
¡¡¤Þ¤¿ CharaManager ¤¬¡¢Ê¬³ä¤·¤¿¤¹¤Ù¤Æ¤Î¥¯¥é¥¹¤Î´ÉÍý¼Ô¤È¤Ê¤ê¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢³Æ¥¯¥é¥¹Æ±»Î¤Ï¤ª¸ß¤¤¤òÃΤé¤Ê¤¤¾õÂÖ(¥á¥ó¥ÐÊÑ¿ô¤Ç´ÉÍý¤·¤Æ¤¤¤Ê¤¤¡£Á·ë¹ç²½)¤òÌÜŪ¤Ë¤â¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¥¥ã¥é¤Î¸þ¤¤¤Æ¤¤¤ëÊý¸þ¤Î¾ðÊó¤Ë´Ø¤·¤Æ¤Ï¡¢Ê£¿ô¤Î¥¯¥é¥¹¤ÇÍøÍѤ¹¤ë¤¿¤á¡¢¤½¤Î¤è¤¦¤Ê¾ðÊó¤Ï CharaManager ¥¯¥é¥¹Æâ¤Ë´ÉÍý¤·¤Þ¤¹¡£
³Æ¥¯¥é¥¹Æâ¤ÇÊÌ¡¹¤ËÊý¸þ¤Î¾ðÊó¤Ï¼èÆÀ¤»¤º¡¢É¬Íפʥ¯¥é¥¹(CharaAnime ¤È CharaAttack)¤Ë¡¢¥á¥½¥Ã¥É¤Î°ú¿ô¤òÄ̤¸¤ÆÁ÷¤êÆϤ±¤ë·Á¤Ç¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£
¡¡°ÜÆ°¤Ë´Ø¤¹¤ëµ¡Ç½¤òÌò³ä¤È¤·¤Æ»ý¤Ä¥¯¥é¥¹¤Ç¤¹¡£
CharaController ¥¯¥é¥¹¤Ë¤¢¤Ã¤¿¡¢°ÜÆ°¤Ë´Ø¤¹¤ë¥á¥ó¥ÐÊÑ¿ô¤È¥á¥½¥Ã¥É¤ò¤³¤Á¤é¤Ë°Ü¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Ç¤¢¤ë SetUpChara ¥á¥½¥Ã¥É¤ò¼ÂÁõ¤·¡¢¤³¤Î¥¯¥é¥¹Æȼ«¤Î¿¶¤ëÉñ¤¤¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡°ÜÆ°¤Î½èÍý¤Ï²èÌ̤ò¥¯¥ê¥Ã¥¯(¥¿¥Ã¥×)¤·¤Æ¤¤¤ë´Ö¡¢¤½¤ÎÊý¸þ¤Ë¸þ¤«¤Ã¤Æ°ÜÆ°¤¹¤ë¥¿¥¤¥×¤Î°ÜÆ°ÊýË¡¤Ç¤¹¡£
CharaManager ¤Î Update ¥á¥½¥Ã¥ÉÆâ¤Ç¥¯¥ê¥Ã¥¯¤ÎÆþÎϤò¼õ¤±ÉÕ¤±¡¢Move ¥á¥½¥Ã¥É¤Î°ú¿ô¤Ë°ÜÆ°Êý¸þ¤Î¾ðÊó¤ò¤â¤é¤¦¤³¤È¤Ç¡¢°ÜÆ°¤ò¼Â¹Ô¤·¤Þ¤¹¡£
¹½À®

´ÉÍýÍÑ¥Õ¥©¥ë¥ÀÍѤΥª¥Ö¥¸¥§¥¯¥È

º¸²¼¤ËÇÛÃÖ¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È

±¦¾å¤ËÇÛÃÖ¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È

¡¡Â¾¤Î¥²¡¼¥à¤Ë¤â±þÍѤǤ¤Þ¤¹¡£
¡¡¥¢¥Ë¥á¤Ë´Ø¤¹¤ëµ¡Ç½¤òÌò³ä¤È¤·¤Æ»ý¤Ä¥¯¥é¥¹¤Ç¤¹¡£
CharaController ¥¯¥é¥¹¤Ë¤¢¤Ã¤¿¡¢¥¢¥Ë¥á¤Ë´Ø¤¹¤ë¥á¥ó¥ÐÊÑ¿ô¤È¥á¥½¥Ã¥É¤ò¤³¤Á¤é¤Ë°Ü¤·¤Æ¤¤¤Þ¤¹¡£
¤Þ¤¿¡¢¥ê¥Æ¥é¥ëɽµ¤·¤Æ¤¤¤¿ Animator ¤Î Parameter ÃͤˤĤ¤¤Æ¡¢¥á¥ó¥ÐÊÑ¿ô¤òÄɲä·¤ÆÃÖ¤´¹¤¨¤Æ¤ê¤Þ¤¹¡£
¡¡¤³¤Î¥¯¥é¥¹¤Ç¤Ï°ÜÆ°Êý¸þ¤Ë¹ç¤ï¤»¤¿¥¢¥Ë¥á¡¼¥·¥ç¥ó¤ÎƱ´ü½èÍý¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£
Àè¤Û¤É¤Î CharaMove ¥¯¥é¥¹¤ÈƱÍͤˡ¢¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò¼ÂÁõ¤·¡¢ÄêµÁ¤µ¤ì¤Æ¤¤¤ë SetUpChara ¥á¥½¥Ã¥ÉÆâ¤Ë¤Æ Animator ¥¯¥é¥¹¤Î¼èÆÀ¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡Àè¤Û¤É¤Î CharaMove ¥¯¥é¥¹¤Î SetUpChara ¥á¥½¥Ã¥É¤Ç¤Ï Debug.Log ¥á¥½¥Ã¥É°Ê³°¤Ë¤ÏÆä˲¿¤â½èÍý¤Ï½ñ¤¹þ¤ó¤Ç¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£
¤³¤Î¤è¤¦¤Ë¡¢Æ±¤¸¥á¥½¥Ã¥É¤Ç¤¢¤Ã¤Æ¤â¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë(½ñ¤«¤ì¤Æ¤¤¤ë)ÆâÍƤ¬°Û¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤¬Ê¬¤«¤ê¤Þ¤¹¡£
¡¡¤Ê¤ª¡¢SetUpChara ¥á¥½¥Ã¥É¤Ç¼Â¹Ô¤·¤Æ¤¤¤ë Animator ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¼èÆÀ¤¹¤ëÌ¿Îá¤Ï
»Ò¥ª¥Ö¥¸¥§¥¯¥È¤Ë Animator ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤òÁÛÄꤷ¤Æ¤¤¤Þ¤¹¡£
»Ò¥ª¥Ö¥¸¥§¥¯¥È¤¬¤Ê¤¤¹½À®¤Î¾ì¹ç¤Ë¤Ï¡¢SetUpChara ¥á¥½¥Ã¥É¤Î½èÍý¤òŬµ¹½¤Àµ¤·¤Æ¡¢¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¼èÆÀÀè¤òÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡if / else ʸ¤Ë¤è¤ëʬ´ô½èÍý¤Î¤¦¤Á¡¢½èÍýÆâÉô¤ÇƱ¤¸ÊÑ¿ô¤ËÂФ·¤ÆÂåÆþ½èÍý¤ò¹Ô¤¦¾ì¹ç¤Ë¤Ï¡¢»°¹à±é»»»Ò¤òÍøÍѤ·¤Æµ½Ò¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
ËÜÍè¤Î if /else ʸ¤ÈÈæ³Ó¤·¤Ê¤¬¤é¹½Ê¸¤òÆɤ߲ò¤¤¤Æ¤ß¤Þ¤·¤ç¤¦¡£
»²¹Íµ»ö
@crazy_travelerÍÍ
»²¹Í¤Ë¤Ê¤ë»°¹à±é»»»Ò
¡¡¹¶·â¤Ë´Ø¤¹¤ëµ¡Ç½¤òÌò³ä¤È¤·¤Æ»ý¤Ä¥¯¥é¥¹¤Ç¤¹¡£
CharaController ¥¯¥é¥¹¤Ë¤¢¤Ã¤¿¡¢¹¶·â¤Ë´Ø¤¹¤ë¥á¥ó¥ÐÊÑ¿ô¤È¥á¥½¥Ã¥É¤ò¤³¤Á¤é¤Ë°Ü¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤ÎºÝ¤Ë¥á¥½¥Ã¥É̾¤òÊѹ¹¤·¤¿¤ê¡¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤òľÀܼ¹Ԥ·¤Ê¤¤¤¿¤á¤ËÃç²ðÌò¤Î¥á¥½¥Ã¥É¤òÄɲ䷤Ƥ¤¤Þ¤¹¡£
¡¡¥Ý¥¤¥ó¥È¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤ÎºÇ¿·¤ÎÊý¸þ¤Î¾ðÊó¤ò CharaManager ¤«¤é»²¾È¤¹¤ë¤¿¤á¤Î¥×¥í¥Ñ¥Æ¥£¤òÍÑ°Õ¤·¤Æ¤¤¤ëÉôʬ¤Ç¤¹¡£
C# ¤Î¥×¥í¥Ñ¥Æ¥£¤Ï¡¢ÃÍ·¿¤Ç¤¢¤Ã¤Æ¤â»²¾È·¿¤Ç¤¢¤Ã¤Æ¤â¡¢³°Éô¤ÎÊÑ¿ô¤äÃͤòÊÝ»ý¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¥²¥Ã¥¿¡¼¤ä¥»¥Ã¥¿¡¼¤Î¥á¥½¥Ã¥É¤òÄ̤¸¤Æ³°Éô¤È¤ÎÃͤΤä¤ê¼è¤ê¤ò¹Ô¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¥×¥í¥Ñ¥Æ¥£¤òÄ̤¸¤ÆÃͤòÀßÄꤹ¤ë¤È¡¢ÆâÉô¤Ç¤ÎÃͤΥ³¥Ô¡¼¤¬¹Ô¤ï¤ì¡¢¤½¤Î¸å¤â³°ÉôÊÑ¿ô¤¬¹¹¿·¤µ¤ì¤ë¤È¥×¥í¥Ñ¥Æ¥£¤Î¥»¥Ã¥¿¡¼¤¬¸Æ¤Ó½Ð¤µ¤ì¤ÆÃͤ¬¹¹¿·¤µ¤ì¤Þ¤¹¡£
¤³¤Î»ÅÁȤߤˤè¤ê¡¢ºÇ¿·¤Î¾ðÊó¤ò¥×¥í¥Ñ¥Æ¥£¤òÄ̤¸¤Æ»²¾È¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡º£²ó¤Ç¤¢¤ì¤Ð¡¢CharaManager ¤Ë¤¢¤ë direction ÊÑ¿ô¤Ï Vector2 ·¿¤Ç¤¢¤ê¡¢ÃÍ·¿¤Ç¤¹¡£
¤½¤Î¾ðÊó¤ò»²¾È¤¹¤ë¤¿¤á¤ËÍÑ°Õ¤¹¤ë¥×¥í¥Ñ¥Æ¥£¤Î·¿¤â Vector3 ¤ÇÃÍ·¿¤Ç¤¹¤¬¡¢¥×¥í¥Ñ¥Æ¥£¤ò²ð¤·¤ÆÃͤòÀßÄꤹ¤ë»ö¤Ç¡¢ºÇ¿·¤Î»²¾È¤¬²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¤³¤Îµ¡Ç½¤Ë¤è¤ê¡¢CharaManager ¤Î¾ðÊó¤ò¸µ¤Ë¼«Æ°Åª¤ËºÇ¿·¤Î¥×¥ì¥¤¥ä¡¼¤ÎÊý¸þ¤Î¾ðÊó¤ò¹¹¿·¤Ç¤¤ë»ÅÁȤߤòƳÆþ¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¤Þ¤¿¿·¤·¤¤µ¡Ç½¤È¤·¤Æ¡¢¹¶·â¤ò°ì»þÄä»ß/ºÆ³«¤¹¤ë¤¿¤á¤Îµ¡Ç½¤òÄɲä·¤Þ¤¹¡£
¡¡CharaManager ¥¯¥é¥¹¤ËÄɲ乤ë ReactiveProperty ¤Ç¤¢¤ë Direction ÊÑ¿ô¤ò¹ØÆɤ·¡¢
Ãͤ¬¹¹¿·¤µ¤ì¤ë¤¿¤Ó¤Ë AttackDirection ¤ÎÃͤò¹¹¿·¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¡¤³¤Î½èÍý¤Ï CharaManager ¤ÇÍÑ°Õ¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¤¬¡¢¤³¤Î CharaAttack ¥¯¥é¥¹¤ÏÊ£¿ô¤Î¹¶·â½èÍý¤ò¹Ô¤¦¾ì¹ç¤Ë¤ÏÍøÍѤ·¤Ê¤¤Í½Äê¤Ç¤¹¡£
¤½¤Î¤¿¤á¡¢CharaManager ¤Ë½èÍý¤ò½ñ¤¤¤Æ¤·¤Þ¤¦¤È¡¢CharaAttack ¥¯¥é¥¹¤òÍøÍѤ·¤Ê¤¤¾ì¹ç¤Ë¤ª¤¤¤ÆÉÔÊؤÊÅÀ¤¬À¸¤¸¤Þ¤¹¡£
(Î㤨¤Ð»È¤Ã¤Æ¤¤¤Ê¤¤ÊÑ¿ô¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤Ê¤É¤¹¤ë¤È¡¢¤½¤ÎÊÑ¿ô¤ò»È¤Ã¤Æ¤¤¤ëÉôʬ¤Ç¥¨¥é¡¼¤¬À¸¤¸¤Þ¤¹¡£)
¡ã¤³¤Î¤è¤¦¤Ê¼ÂÁõ¤â¤Ç¤¤ë¤¬¡¢CharaManager ¤Ç¤Î¼ÂÁõ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¡ä
using UniRx; using UnityEngine; public class CharaAttack : MonoBehaviour, IChara { private Vector2 attackDirection; // CharaManager ¤«¤é¤ÎÊý¸þ¾ðÊó¤ò¹ØÆɤ¹¤ë¥×¥í¥Ñ¥Æ¥£ public Vector2 AttackDirection => attackDirection; } public class CharaManager : MonoBehaviour { private CharaAttack charaAttack; private ReactiveProperty<Vector2> Direction = new (); private void Start() { if (TryGetComponent(out charaAttack)) { // CharaAttack ¦¤Î¥×¥í¥Ñ¥Æ¥£¤òľÀܹ¹¿· Direction.Subscribe(diruection => charaAttack.AttackDirection = direction); } } // CharaManager ¤ÎÊý¸þ¾ðÊó¤ò¹¹¿·¤¹¤ë¥á¥½¥Ã¥É public void UpdateDirection(Vector2 newDirection) { // Êý¸þ¾ðÊó¤òÀßÄê Direction.Value = newDirection; } }
¡¡CharaAttack ¥¯¥é¥¹Æâ¤Î½èÍý¤ò CharaManager ¥¯¥é¥¹¤ÈÀÚ¤êÎ¥¤·¤ÆÆÈΩÀ¤òÊݤĤ¿¤á¡¢ CharaAttack ¥¯¥é¥¹Æâ¤Ç¤Î¹ØÆɽèÍý¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¾åµ¤Î£³¤Ä¤Î¥¯¥é¥¹¤ò¤Þ¤È¤á¤Æ´ÉÍý¤¹¤ë¥¯¥é¥¹¤Ç¤¹¡£
¤³¤Î¥¯¥é¥¹¤Ë¤Ï RequireComponent °À¤òÉÕÍ¿¤·¡¢³ºÅö¤¹¤ë£³¤Ä¤Î¥¯¥é¥¹¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
¤³¤Î¥¯¥é¥¹¤ò¥¢¥¿¥Ã¥Á¤¹¤ë¤È¡¢Àè¤Û¤É¤Î£³¤Ä¤Î¥¯¥é¥¹¤â¼«Æ°Åª¤ËÄɲäǥ¢¥¿¥Ã¥Á¤µ¤ì¤Þ¤¹¡£
¥¢¥¿¥Ã¥Á¤Î¼ê´Ö¤¬¾Ê¤±¤ë¤È¤È¤â¤Ë¡¢¥¢¥¿¥Ã¥Á˺¤ì¤òËɻߤ¹¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£
¡¡¤³¤Î¥¯¥é¥¹¤Î¤ß¤¬£³¤Ä¤Î¥¯¥é¥¹¤ò¥á¥ó¥ÐÊÑ¿ô¤È¤·¤Æ´ÉÍý¤·¡¢¤½¤ì¤¾¤ì¤Î½èÍý¤ËÂФ·¤ÆÌ¿Îá¤ò½Ð¤·¤Æ¤¤¤Þ¤¹¡£
¥È¥Ã¥×¥À¥¦¥ó·¿¤Î¤è¤¦¤ÊÌ¿Îá·ÏÅý¤Î»ÅÁȤߤò¥¤¥á¡¼¥¸¤·¤Æ¤â¤é¤¨¤ì¤Ðʬ¤«¤ê¤ä¤¹¤¤¤Ç¤·¤ç¤¦¡£
¡¡¤Þ¤¿¶¦Ä̤νèÍý¤È¤·¤Æ¥¥ã¥é¤ÎÊý¸þ¤Î¾ðÊó¤ò´ÉÍý¤·¡¢¤½¤Î¾ðÊó¤ò¥¢¥Ë¥á¡¼¥·¥ç¥ó¤Î¥¯¥é¥¹¤È¹¶·â¤Î¥¯¥é¥¹¤ËÂФ·¤Æ¡¢¥á¥½¥Ã¥É¤òÄ̤¸¤ÆÅϤ·¤Æ¤¤¤Þ¤¹¡£
¤³¤¦¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢³Æ¥¯¥é¥¹Æâ¤ÇȽÄê¤ò¤µ¤»¤ëɬÍפʤ¯¡¢¶¦Ä̤ÎÃͤò¤½¤ì¤¾¤ì¤Î¥¯¥é¥¹¤ËÍøÍѤ·¤Æ¤â¤é¤¦À߷פǤ¹¡£
¡¡¤¿¤À¤·¡¢½èÍý¤Î¥¿¥¤¥ß¥ó¥°¤ÎÌäÂê¤Ç¡¢¤³¤Î¥á¥½¥Ã¥É¤Î°ú¿ô¤ÇÅϤ¹ÊýË¡¤Ç¤Ï¡¢Êý¸þ¤Î¾ðÊó¤òÅϤ»¤Ê¤¤¥¯¥é¥¹(CharaAttack)¤â¤¢¤ê¤Þ¤¹¡£
¤³¤ì¤Ï¹¶·â½èÍý¤Î¥¿¥¤¥ß¥ó¥°¤¬ CharaManager ¤Ç¤Ï¤Ê¤¯¡¢CharaAttack ¤Ë°Í¸¤·¤Æ¤¤¤ë¤¿¤á¡¢¾ï¤ËºÇ¿·¤ÎÃͤòÅϤ·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
¡¡ºÇ¤â´Êñ¤ÊÊý¸þ¾ðÊó¤ÎÅϤ·Êý¤Ï¡¢CharaManager ¥¯¥é¥¹¤Î Update ¥á¥½¥Ã¥É¤Ç CharaAttack Æâ¤ËÍÑ°Õ¤·¤Æ¤¢¤ëÊý¸þ¾ðÊó¤ÎÃͤò¿ï»þ¹¹¿·¤¹¤ë¤â¤Î¤Ç¤¹¡£
¤³¤ì¤Ç¤¢¤ì¤Ð¡¢¤¤¤Ä¹¶·â¤Î½èÍý¤ò¤ª¤³¤Ê¤Ã¤Æ¤âºÇ¿·¤ÎÊý¸þ¤Î¾ðÊó¤òÍøÍѤǤ¤Þ¤¹¡£
¡¡º£²ó¤Ï¤½¤Î¥¢¥×¥í¡¼¥Á¤Ç¤Ï¤Ê¤¯¡¢CharaAttack ¥¯¥é¥¹¤Ë¥×¥í¥Ñ¥Æ¥£¤òÍÑ°Õ¤·¡¢¤½¤Î»²¾ÈÀè¤ò CharaManager ¥¯¥é¥¹¤ÎÊý¸þ¾ðÊó¤Èɳ¤Å¤±¤Þ¤¹¡£
¥×¥í¥Ñ¥Æ¥£¤òÄ̤¸¤ÆÃͤòÀßÄꤹ¤ë¤È¡¢ÆâÉô¤Ç¤ÎÃͤΥ³¥Ô¡¼¤¬¹Ô¤ï¤ì¡¢¤½¤Î¸å¤â³°ÉôÊÑ¿ô¤¬¹¹¿·¤µ¤ì¤ë¤È¥×¥í¥Ñ¥Æ¥£¤Î¥»¥Ã¥¿¡¼¤¬¸Æ¤Ó½Ð¤µ¤ì¤ÆÃͤ¬¹¹¿·¤µ¤ì¤Þ¤¹¡£
¤³¤Î»ÅÁȤߤˤè¤ê¡¢CharaAttack ¥¯¥é¥¹Â¦¤Ç¤â¡¢ºÇ¿·¤Î¾ðÊó¤ò¥×¥í¥Ñ¥Æ¥£¤òÄ̤¸¤Æ»²¾È¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤Ê¤ªº£²ó¤Ï½èÍý¤Î³Îǧ¤Î¤¿¤á¡¢Start ¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ½èÍý¤ò¥¹¥¿¡¼¥È¤µ¤»¤Æ¤¤¤Þ¤¹¤¬¡¢
¼ÂºÝ¤Ë¤Ï³°Éô¥¯¥é¥¹¤«¤é SetUpCharaManager ¥á¥½¥Ã¥É¤Ø¼Â¹ÔÌ¿Îá¤ò¼õ¤±¤ÆÆ°¤¤¤Æ¤¤¤¯Á°Äó¤ÇÀ߷פ·¤Æ¤¤¤Þ¤¹¡£
¡¡º£²ó¡¢¥×¥í¥Ñ¥Æ¥£¤ò¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤·¡¢ReactiveProperty ¤ËÃÖ¤´¹¤¨¤Æ¤¤¤Þ¤¹¡£
¡ã¸µ¤Î½èÍý¡ä
// direction ¤Î¥×¥í¥Ñ¥Æ¥£¡£ÆâÉô¤Ç CharaAttack ¤Î AttackDirection ¥×¥í¥Ñ¥Æ¥£¤âƱ»þ¤Ë¹¹¿·¤·¤Æ¤¤¤ë public Vector2 Direction { get => direction; set { direction = value; if (charaAttack) { charaAttack.AttackDirection = value; } } } /// <summary> /// ¸þ¤¤Î¹¹¿· /// </summary> /// <param name="newPos"></param> private void UpdateDirection(Vector2 newPos) { Direction = (newPos - (Vector2)transform.position).normalized; }
¡¡¡¡¡¡¡¡¢
¡ã¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¸å¤Î½èÍý¡ä
public ReactiveProperty<Vector2> Direction = new(); /// <summary> /// ¸þ¤¤Î¹¹¿· /// </summary> /// <param name="newPos"></param> private void UpdateDirection(Vector2 newPos) { // ReactiveProperty ¤ËÃÖ¤´¹¤¨ //Direction = (newPos - (Vector2)transform.position).normalized; Direction.Value = (newPos - (Vector2)transform.position).normalized; }¡¡
UniRx ¤Î ObsevableTriggers ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë UpdateAsObsevable ¥á¥½¥Ã¥É¤ËÃÖ¤´¹¤¨¤Æ¤¤¤Þ¤¹¡£
¡¡UpdateAsObsevable ¥á¥½¥Ã¥É¤Ï¡¢MonoBehaviour ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ë¾ì¹ç¤Î¤ßÍøÍѤǤ¤Þ¤¹¡£
¡ã¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¸å¤Î½èÍý¡ä
void Update() { ¡¡¡¡¡¡¡¡if (charaMove == null || charaAnime == null) { return; } if (Input.GetMouseButton(0)) { Vector2 tapPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); charaMove.Move(tapPos); //¸þ¤¤Î¹¹¿· UpdateDirection(tapPos); //°ÜÆ°¤Î¸þ¤¤È¥¢¥Ë¥á¤Î¸þ¤¤ÎƱ´ü //charaAnime.UpdateAnimation(Direction); charaAnime.UpdateAnimation(Direction.Value); } }¡¡
¡¡¡¡¡¡¡¡¢
¡ã¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¸å¤Î½èÍý¡ä
using UniRx; using UniRx.Triggers; void Start() { // ¥Ç¥Ð¥Ã¥°ÍÑ SetUpCharaManager(); // ¾ðÊó¤¬Â¤ê¤Æ¤¤¤ë¤«È½Äê if (charaMove == null || charaAnime == null) { Debug.Log($"½èÍý¤ËɬÍפʾðÊó¤¬Â¤ê¤Ê¤¤¤Î¤Ç¡¢½èÍý¤òÄä»ß¤·¤Þ¤¹¡£ CharaMove : {charaMove} / CharaAnime : {charaAnime}"); return; } // Update ¥á¥½¥Ã¥É¤ò¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤·¡¢UpdateAsObservable() ¤ËÃÖ¤´¹¤¨ this.UpdateAsObservable() .Where(_ => Input.GetMouseButton(0)) .Select(_ => Camera.main.ScreenToWorldPoint(Input.mousePosition)) // Ìá¤êÃͤϥ¥ë¥ÉºÂɸ .Subscribe(tapPos => // tapPos ¤Ï Select ¤ÎÌá¤êÃÍ { charaMove.Move(tapPos); // ¸þ¤¤Î¹¹¿· UpdateDirection(tapPos); // °ÜÆ°¤Î¸þ¤¤È¥¢¥Ë¥á¤Î¸þ¤¤ÎƱ´ü charaAnime.UpdateAnimation(Direction.Value); }); }
¡¡¤Ê¤ª¡¢MonoBehaviour ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢Obsevable.EveryUpdate() ¥á¥½¥Ã¥É¤òÍøÍѤ¹¤ë¤³¤È¤ÇÃÖ¤´¹¤¨½ÐÍè¤Þ¤¹¡£
¤³¤Á¤é¤Î¾ì¹ç¡¢OnCompleted ¥á¥Ã¥»¡¼¥¸¤òȯ¹Ô¤·¤Ê¤¤¤¿¤á¡¢AddTo ¥á¥½¥Ã¥É¤òÉÕÍ¿¤·¤Æ Dispose ¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
¡ãMonoBehaviour ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë Update ¥á¥½¥Ã¥É¤ò Obsevable ¤È¤·¤Æ°·¤¦ÊýË¡¡ä
// MonoBehaviour ¤Ê¤¤¾ì¹ç¡¢UpdateAsObservable() ¤ÎÂå¤ï¤ê¤Ë Observable.EveryUpdate() ¤òÍøÍѤ¹¤ë Observable.EveryUpdate() .Where(_ => charaMove != null && charaAnime != null) .Where(_ => Input.GetMouseButton(0)) .Select(_ => Camera.main.ScreenToWorldPoint(Input.mousePosition)) .Subscribe(tapPos => { charaMove.Move(tapPos); // ¸þ¤¤Î¹¹¿· UpdateDirection(tapPos); // °ÜÆ°¤Î¸þ¤¤È¥¢¥Ë¥á¤Î¸þ¤¤ÎƱ´ü charaAnime.UpdateAnimation(Direction.Value); }) .AddTo(this); // ¥µ¥Ö¥¹¥¯¥ê¥×¥·¥ç¥ó¤ò²ò½ü
¡¡¥¯¥é¥¹¤Î´Ø·¸À¤ËÊѹ¹¤Ï¤¢¤ê¤Þ¤»¤ó¡£³Æ¥¯¥é¥¹¤Î´ØÏ¢À¤ò¸«¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¡ã¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤È¥¯¥é¥¹¤Î´Ø·¸À¡ä

¡ã´ÉÍý¥¯¥é¥¹¤È¾¤Î¥¯¥é¥¹¤Î´Ø·¸À¡ä

¡¡£³¤Ä¤Î¥¯¥é¥¹¤¬¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¤¿¤á¡¢¤¹¤Ù¤Æ¤Î¥¯¥é¥¹¤Ë SetUpChara ¥á¥½¥Ã¥É¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
Ʊ̾¤Î¥á¥½¥Ã¥É¤Ç¤¹¤¬¡¢¼ÂºÝ¤Ë¤Ï¤½¤ì¤¾¤ì¤Î¥¯¥é¥¹Æâ¤Ë½ñ¤¤¤Æ¤¢¤ë½èÍý¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢¿¶¤ëÉñ¤¤¤¬ÊѤï¤ê¤Þ¤¹¡£
¡¡¤Þ¤¿ CharaManager ¥¯¥é¥¹¤Ï¾¤Î Chara ¡Á ¥¯¥é¥¹¤òÃΤäƤ¤¤Þ¤¹¤¬¡¢Â¾¤Î¥¯¥é¥¹Æ±»Î¤Ë¤Ï¤Ä¤Ê¤¬¤ê¤¬¤¢¤ê¤Þ¤»¤ó¡£
¤è¤Ã¤Æ¡¢¥¯¥é¥¹´Ö¤Î´Ø·¸À¤¬Á·ë¹ç²½¤Ç¤¡¢¥¯¥é¥¹ÆâÉô¤ò½¤Àµ¤¹¤ëºÝ¤Ë¡¢Â¾¤Î¥¯¥é¥¹¤Î¤³¤È¤òµ¤¤Ë¤»¤º¤Ë½¤Àµ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¤³¤Î¤è¤¦¤Ë¡¢¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢Æ±Ì¾¤Î¥á¥½¥Ã¥É¤ò»È¤¦¤¬¡¢¤½¤ÎÆâÍƤޤǤϴØÃΤ·¤Ê¤¤¡¢¤È¤¤¤¦·Á¤Ç½èÍý¤ÎÃê¾Ý²½¤¬¤Ç¤¡¢
²Ã¤¨¤Æ¡¢Æ±Ì¾¤Î¥á¥½¥Ã¥É¤Ç¤¢¤ê¤Ê¤¬¤é¡¢°Û¤Ê¤ë½èÍý¤ò¼Â¹Ô¤·¤Æ¤¤¤¯(¿¶¤ëÉñ¤¤¤òÊѤ¨¤ë)¤È¤¤¤¦¡¢Â¿ÂÖÀ¤Î³µÇ°¤â°ì½ï¤ËÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
¡¡¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ·¿¥×¥í¥°¥é¥à¤Ï¼ÂºÝ¤Ë»È¤¤¤Ê¤¬¤é³Ø½¬¤·¤Æ¤¤¤¯¤È¡¢³µÇ°¤äµ¡Ç½¤ÎÊØÍø¤µ¤Ê¤É¤¬¸«¤¨¤Æ¤¤Þ¤¹¤Î¤Ç¡¢
¤Ê¤ë¤Ù¤¯½èÍý¤ò½ñ¤¤¤ÆÆ°¤«¤·¤Ê¤¬¤é³Ø½¬¤ò¤·¤Æ¤¤¤¯¤È¤è¤¤¤Ç¤·¤ç¤¦¡£
¡¡
¡¡¥¯¥é¥¹¿Þ¤ò½ñ¤¯¤³¤È¤Ë¤è¤ê¡¢¼«Ê¬¤Î¥¤¥á¡¼¥¸¤òÀ°Íý¤¹¤ëºÝ¤Ë¤âÌòΩ¤Á¤Þ¤¹¤·¡¢Âè»°¼Ô¤Ë¥¯¥é¥¹¤Î¾õÂÖ¤òÀâÌÀ¤¹¤ë¾ì¹ç¤Ë¤â¾ðÊó¤òÀµ³Î¤ËÅÁ¤¨¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¤Þ¤º¥×¥ì¥¤¥ä¡¼Ìò¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÊ£À½¤·¤Þ¤¹¡£Ê£À½¸å¡¢£±¤Ä¤ÏÈóɽ¼¨¤Ë¤·¤Þ¤¹¡£
¥«¥á¥é¤Ê¤É¤ÇÄɽ¾ÂоݤˤʤäƤ¤¤ë¾ì¹ç¤Ë¤Ï¡¢¥«¥á¥é¤ÎÀßÄêÀè¤â¸«Ä¾¤·¤Æ¥¢¥µ¥¤¥ó¤·Ä¾¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡°ÊÁ°¤Î¾õÂ֤Υ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò»Ä¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ç¤ÎÀßÄêÃͤγÎǧ¤Ê¤É¤â½ÐÍè¤ë¤¿¤á¤Ç¤¹¡£
¡¡Ê£À½¤µ¤ì¤¿Êý¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤¢¤ë CharaController ¤Î¥¹¥¯¥ê¥×¥È¤ò Remove ¤·¡¢Âå¤ï¤ê¤Ë CharaManager ¥¯¥é¥¹¤ò¥¢¥¿¥Ã¥Á¤·¤Æ¤¯¤À¤µ¤¤¡£
°ì½ï¤Ë£³¤Ä¤Î¥¯¥é¥¹¤â¼«Æ°Åª¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Þ¤¹¡£¥³¥é¥¤¥À¡¼¤È Rigidbody ¤Ï¤½¤Î¤Þ¤Þ¤ÇÌäÂꤢ¤ê¤Þ¤»¤ó¡£
¤Þ¤¿¡¢BulletGenerator ¥¯¥é¥¹¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤â¥¢¥¿¥Ã¥Á¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡CharaMove ¥¯¥é¥¹¤Ë¤Ï°Üư®Å٤ȰÜÆ°ÈϰϤÎÀßÄê¡¢CharaAttack ¤Ë¤Ï¹¶·â¤Î´Ö³Ö¤ÎÀßÄ꤬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤ì¤¾¤ìÀßÄê¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü

¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£
¡¡¥²¡¼¥à¤ò¼Â¹Ô¤·¡¢¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤ò¹Ô¤¦Á°¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¤«¤ò¸¡¾Ú¤·¤Æ¤¯¤À¤µ¤¤¡£
¡ã³Îǧư²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡¥½¡¼¥¹¥³¡¼¥É¤ò½ñ¤¯Á°¤Ë¡¢À߷פò¹Í¤¨¤ë¤³¤È¤«¤é»Ï¤á¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
°ÊÁ°¤è¤ê¤â¤¿¤¯¤µ¤ó¤Î»þ´Ö¤ò¥¯¥é¥¹¤ÎÀ߷פËÈñ¤ä¤·¤Æ¤ß¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹¡£
¤É¤Î¤è¤¦¤Ê½èÍý¤ò¡¢¤É¤Î¥¯¥é¥¹¤Ë½ñ¤¯¤Î¤«¤òÌÀ³Î¤Ë¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢ÈîÂç²½¤·¤ä¤¹¤¤¥¯¥é¥¹¤òÁ°¤â¤Ã¤ÆǧÃΤ·¤Æ¤ª¤¯¤³¤È¤â¤Ç¤¤Þ¤¹¡£
¡¡¥½¡¼¥¹¥³¡¼¥É¤ò½ñ¤¤¤Æ¤¤¤ë´Ö¤â¡¢¾ï¤Ë¡¢À߷פòƬ¤Ë¹Í¤¨¤Æ¿Ê¤á¤Æ¤¤¤¯¤è¤¦¤Ë¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
À߷פϽñ¤½Ð¤·¤Æ¤ª¤¯¤³¤È¤Ç¹Í¤¨¤Æ¤¤¤ë¤³¤È¤ò¸À¸ì²½¡¦²Ä»ë²½¤Ç¤¤ë¤Î¤Ç¡¢¤è¤ê¥¤¥á¡¼¥¸¤·¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£
¡¡¤Þ¤¿½ñ¤¤¤Æ½ª¤ï¤ê¤Ë¤Ï¤»¤º¡¢¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤ò¹Ô¤¦¤³¤È¤âǰƬ¤ËÃÖ¤¤¤Æ¤ª¤¯¤È¡¢ÎɼÁ¤Ê¥³¡¼¥Ç¥£¥ó¥°¤¬¹Ô¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¤Þ¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯