ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2022ǯ12·î30Æü(¶â) 17:08:51ÍúÎò
¡¡°Ê²¼¤ÎÆâÍÆ¤Ç½çÈ֤˼ÂÁõ¤ò¿Ê¤á¤Æ¤¤¤¤Þ¤¹¡£
¼ê½ç£µ¡¡¡¼¥×¥ì¥¤¥ä¡¼¥¥ã¥é¤ÎºîÀ®¡¼
¡¡£¸¡¥¥×¥ì¥¤¥ä¡¼¥¥ã¥éÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë ¡¡£¹¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¤ò°Üư¤µ¤»¤ë
¡¡¿·¤·¤¤³Ø½¬ÆâÍÆ¤Ï¡¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£¥¹¥¯¥ê¥×¥ÈÆâ¤Ç¼ÂÁõ¤¹¤ëÆâÍÆ¤Ë¤Ê¤ê¤Þ¤¹¡£
¤È¤Æ¤â¿¤¤¤¿¤á¡¢¤æ¤Ã¤¯¤ê¤ÈÉü½¬¤·¤ÆÍý²ò¤ò¿¼¤á¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¦SerializeField °À ¡¡¡¦RequireComponent °À ¡¡¡¦Header °À ¡¡¡¦TryGetComponent ¥á¥½¥Ã¥É ¡¦Input.GetAxis ¥á¥½¥Ã¥É ¡¡¡¦Vector3.normalized ÊÑ¿ô¤òÍøÍѤ·¤¿Àµµ¬²½½èÍý ¡¡¡¦Rigidbody2D.velocity ÊÑ¿ô¤È velocity ÊÑ¿ô¤òÍøÍѤ·¤¿°Üư½èÍý ¡¡¡¦FixedUpdate ¥á¥½¥Ã¥É ¡¡¡¦Summary¡Ê¥µ¥Þ¥ê¡¼¡Ëµ¡Ç½¡¡ ¡¡¡¦InputManager¤Ë¤è¤ë¥¡¼ÆþÎϤÎÀßÄê
¡¡2D Tutorial ¥¢¥»¥Ã¥È¤òÍøÍѤ·¤Æ¥¥ã¥é¤òÀ©ºî¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¤³¤Î¼ê½ç¤ÏÉÔÍפǤ¹¤Î¤Ç¡¢¼¡¤Î¼ê½ç¡Ú£³¡¥¥Ò¥¨¥é¥ë¥¡¼¤Ë¥¥ã¥é¤òÀßÃÖ¤¹¤ë¡Û¤Ø¿Ê¤ó¤Ç¤¯¤À¤µ¤¤¡£
¡¡¥×¥ì¥¤¥ä¡¼¤È¤·¤Æ»ÈÍѤ·¤¿¤¤¥¥ã¥é¤Î²èÁü¥Õ¥¡¥¤¥ë¤ò Unity ¤Ø¥¤¥ó¥Ý¡¼¥È¤·¤Æ¤¯¤À¤µ¤¤¡£
ÃÏ·Á¤Î²èÁü¥Õ¥¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤¿¡¢¤Ô¤Ý¤äÍͤˤϥ¥ã¥é¤Î²èÁü¥Õ¥¡¥¤¥ë¤âÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£
¤Ô¤Ý¤äÍÍ
¥Û¡¼¥à
https://pipoya.net/sozai/
¡¡¥¤¥ó¥Ý¡¼¥È¤Î¼ê½ç¤ä¡¢²èÁü¥Õ¥¡¥¤¥ë¤Îʬ³ä¤Î¼ê½ç¤Ê¤É¤âƱ¤¸¤Ç¤¹¡£
Á°²ó¤Î¼ê½ç¤ò»²¹Í¤Ë¤·¤Ê¤¬¤éºî¶È¤·¤Æ¤¯¤À¤µ¤¤¡£
¥Õ¥©¥ë¥À²èÁü(»²¹ÍÎã)

¡¡²èÁü¤òʬ³ä¤Ç¤¤ì¤Ð¤³¤Î¼ê½ç¤Ï´°Î»¤Ç¤¹¡£
¡¡²èÁü¤Î¥Õ¥©¥ë¥ÀÆâ¤Ë¤¢¤ëƱ¤¸Êý¸þ¤ò¸þ¤¤¤Æ¤¤¤ë²èÁü¥Õ¥¡¥¤¥ë¤ò¤Þ¤È¤á¤ÆÁªÂò¤·¤Þ¤¹(£³¡Á£´¥Õ¥¡¥¤¥ë)
Ê£¿ô¤Î²èÁü¤ò¤Þ¤È¤á¤ÆÁªÂò¤¹¤ëÊýË¡¤Ï Ctrl ¥¡¼¤ò²¡¤·¤Ê¤¬¤é¥Þ¥¦¥¹¤Îº¸¥¯¥ê¥Ã¥¯¤Ç¤¹¡£
¤É¤ÎÊý¸þ¤ò¸þ¤¤¤Æ¤¤¤ë²èÁü¥Õ¥¡¥¤¥ë¤Ç¤â¹½¤¤¤Þ¤»¤ó¡£º£²ó¤ÏÀµÌ̤ò¸þ¤¤¤Æ¤¤¤ë²èÁü¥Õ¥¡¥¤¥ë¤ò£³¤ÄÁªÂò¤·¤Æ¤¤¤Þ¤¹¡£
¡¡2D Tutorial ¥¢¥»¥Ã¥È¤Ë¤¢¤ë²èÁü¤òÍøÍѤ¹¤ë¾ì¹ç¤Ë¤Ï²¼µ¤Î¥Ñ¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£
¥Ñ¥¹
Assets/Art/Sprites/Characters/RubySheet.png
ÀµÌ̤ò¸þ¤¤¤Æ¤¤¤ë²èÁü¥Õ¥¡¥¤¥ë¤ÎÁªÂò

ÁªÂò»þ¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü

¡¡¼ê½ç£²¤Ç¼«Ê¬¤Ç°Û¤Ê¤ë²èÁü¤ò¥¤¥ó¥Ý¡¼¥È¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ÂоݤȤʤë²èÁü¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£
¼«Ê¬¤Ç²èÁü¤ò¥¤¥ó¥Ý¡¼¥È¤·¤¿¾ì¹ç¡¢ÀµÌ̤ò¸þ¤¤¤Æ¤¤¤ë²èÁü¥Õ¥¡¥¤¥ë¤ÎÁªÂòÎã

ÁªÂò»þ¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁüÎã

¡¡ÁªÂò¤·¤¿¥Õ¥¡¥¤¥ë¤ò¤½¤Î¤Þ¤Þ¥Ò¥¨¥é¥ë¥¡¼¤Ë¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Þ¤¹¡£
Create New Animation ¤È¤¤¤¦¥¦¥¤¥ó¥É¥¦¤¬³«¤¤Þ¤¹¡£
Create New Animation¡¡¥¦¥¤¥ó¥É¥¦

¡¡Create New Animation¥¦¥¤¥ó¥É¥¦¤Ï¡¢ºîÀ®Ê£¿ô¤Î²èÁü¥Õ¥¡¥¤¥ë¤ò¥Ò¥¨¥é¥ë¥¡¼¤Ë¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤¹¤ë¤Èɽ¼¨¤µ¤ì¤ë¥¦¥¤¥ó¥É¥¦¤Ç¤¹¡£
¤½¤ì¤é¤Î²èÁü¤ò»È¤Ã¤¿¥¢¥Ë¥á¡¼¥·¥ç¥ó¤òºÆÀ¸¤¹¤ë¡¢¥¢¥Ë¥á¡¼¥·¥ç¥ó¥¯¥ê¥Ã¥×¤ò¼«Æ°Åª¤ËºîÀ®¤·¤Æ¤¯¤ì¤Þ¤¹¡£
¡ÊÊ£¿ôËç¤Î²èÁü¤ò¥Ñ¥é¥Ñ¥éÌ¡²è¤Î¤è¤¦¤Ë¤Ä¤Ê¤®¹ç¤ï¤»¤Æ£±¤Ä¤Î¥¢¥Ë¥á¤Ë¤·¤Æ¤¤¤Þ¤¹¡£¡Ë
¡¡2D Tutorail ¥¢¥»¥Ã¥È¤òÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢¤¹¤Ç¤Ë¥¢¥»¥Ã¥ÈÆâ¤Ë¥¢¥Ë¥á¡¼¥·¥ç¥ó¥¯¥ê¥Ã¥×¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
¤³¤Î¥¦¥¤¥ó¥É¥¦¤¬³«¤¤¤¿¾ì¹ç¡¢¥¥ã¥ó¥»¥ë¤ÇÊĤ¸¤Æ¤·¤Þ¤Ã¤ÆÌäÂꤢ¤ê¤Þ¤»¤ó¡£
¡¡¼«Ê¬¤Ç¿·¤·¤¤²èÁü¤«¤é¥¢¥Ë¥á¡¼¥·¥ç¥ó¥¯¥ê¥Ã¥×¤òºîÀ®¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢Êݸ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¡¡¥Õ¥¡¥¤¥ë̾¤ò player_front.anim ¤ËÊѹ¹¤·¤ÆÊݸ¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ÀµḬ̀ʳ°¤Î¥¢¥Ë¥á¤Î¾ì¹ç¤Ë¤Ï¡¢¤½¤ÎÊý¸þ¤Î̾¾Î¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
ÊݸÀè¤Ë¤Ï Animations ¤Î¤è¤¦¤Ê¥Õ¥©¥ë¥À¤òºîÀ®¤·¤Æ¤ª¤¤¤Æ¡¢¤½¤ÎÃæ¤ËÊݸ¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤È´ÉÍý¤·¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£
¡¡¥Ò¥¨¥é¥ë¥¡¼¤Ë²èÁü¥Õ¥¡¥¤¥ë¤ÎºÇ½é¤Î¥Õ¥¡¥¤¥ë̾¤ÈƱ¤¸Ì¾¾Î¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£
(Ê£¿ô¤Î²èÁü¤Î¾ì¹ç¡¢¼«Æ°Åª¤ËÀèÆ¬¤Î¥Õ¥¡¥¤¥ë̾¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ê¤Þ¤¹)
¥Ò¥¨¥é¥ë¥¡¼²èÁü

¡¡¤³¤Î¤Þ¤Þ¤Ç¤¹¤È¡¢¥¥ã¥é¤¬ÃÏ·Á¤Î¥¿¥¤¥ë¤Ë±£¤ì¤Æ¸«¤¨¤Ê¤¤¾õÂ֤ˤʤäƤ·¤Þ¤¦¤¿¤á¡¢
¼¡¤Î¼ê½ç¤Ç¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÉÁ²è¤¹¤ëÍ¥Àè½ç°Ì¤òÀßÄꤷ¤Þ¤¹¡£
¡¡¥Ò¥¨¥é¥ë¥¡¼¤Î¥¥ã¥é¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¡¢Ì¾Á°¤ò Player ¤ËÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡Player ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î Transform ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î Position ¤Î¾ðÊó¤¬ (0, 0, 0) ¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢(0, 0, 0) ¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£
¡¡ºÇ¸å¤Ë¡¢Sprite Renderer ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î Additional Settings Æâ¤Ë¤¢¤ë Sorting Layer ¤òÁªÂò¤·¡¢
Default ¤ò Chara ¤ËÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£Chara ¤¬ºÇ¤âÍ¥Àè½ç°Ì¤¬¹â¤¤ Sorting Layer ¤Î¼ïÎà¤Ç¤¢¤ë¤¿¤á¡¢
¥²¡¼¥à²èÌ̤ǤÎÉÁ²è¤Î½ç°Ì¤¬ÊѤï¤ê¡¢Player ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬Â¾¤Î¥¿¥¤¥ë¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤è¤ê¤â¾ï¤Ë¼êÁ°¤Ëɽ¼¨¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü

¡¡
Scene¥Ó¥å¡¼²èÁü

Game ¥Ó¥å¡¼²èÁü

¡¡°ìÅÙ¥»¡¼¥Ö¤ò¹Ô¤¤¡¢¥²¡¼¥à¤ò¼Â¹Ô¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¥¥ã¥é¤¬¤½¤Î¾ì¤Ç¥¢¥Ë¥á¡¼¥·¥ç¥ó¤¹¤ì¤ÐÀ®¸ù¤Ç¤¹¡£
¡¡¼¡¤Ï¡¢¥×¥ì¥¤¥ä¡¼¥¥ã¥é¤Î°Üư¤ÎÀ©¸æ½èÍý¤òºîÀ®¤·¤Þ¤¹¡£
¡¡Unity ¤Ë¤ª¤¤¤Æ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁàºî¤ò¹Ô¤¦¤¿¤á¤Ë¤Ï¡¢¥¹¥¯¥ê¥×¥È¤òÍøÍѤ·¤Æ¡¢À©¸æ¤¬É¬Íפʥ³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤Ë¥¢¥¯¥»¥¹¤·¤ÆÀ©¸æÁàºî¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡º£²óÀ©¸æ¤ò¹Ô¤¤¤¿¤¤¤Î¤Ï Player ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ê¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢¤³¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥ÈÀìÍѤΥ¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Þ¤¹¡£
¡¡¿·¤·¤¯ PlayerController ¤È¤¤¤¦¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¡¢¤³¤Î¥¹¥¯¥ê¥×¥È¤ò»È¤Ã¤Æ¥¥ã¥é¤ÎÀ©¸æ¤ò¹Ô¤Ã¤Æ¤¤¤¤Þ¤¹¡£
¡¡À©¸æ¤È¤Ï¡¢¥¥ã¥é¤Î¹Ôư¡Ê°Üư¡¢¥¸¥ã¥ó¥×¤Ê¤É¡Ë¤À¤±¤Ç¤Ï¤Ê¤¯¡¢°Üư¤Ë¹ç¤ï¤»¤¿¥¢¥Ë¥á¡¼¥·¥ç¥ó¤ÎºÆÀ¸¤ä¡¢²èÌÌ¤Î°ÜÆ°ÈϰϤÎÀ©¸Â¤Ê¤É¿´ô¤ËÅϤê¤Þ¤¹¡£
¤½¤ì¤é¤ò½çÈ֤˼ÂÁõ¤·¤Æ¤¤¤¤Ê¤¬¤é¡¢¥¹¥¯¥ê¥×¥È¤Î³Ø½¬¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡¤³¤Î¼ê½ç¤Ç¤Ï¡¢¥¥ã¥é¤Î°Üư¤Ë¤Ä¤¤¤Æ°·¤¤¤Þ¤¹¡£°Üư¤Ë¤Ï Rigidbody2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Îµ¡Ç½¤òÍøÍѤ·¤Þ¤¹¡£
»²¹Í¥µ¥¤¥È
Unity¥¤¥ó¥¿¡¼¥Ï¥¤¥Ö¥í¥°ÍÍ
ʪÍý¥¨¥ó¥¸¥ó¤ÈÅö¤¿¤êȽÄê¤ò»È¤¤¤³¤Ê¤½¤¦(¤½¤Î1)
http://inter-high-blog.unity3d.jp/2019/06/28/rigid...
¡¡ºÇ½é¤Ï¥¡¼¥Ü¡¼¥É¤ÇÁàºî¤¬¤Ç¤¤ë¤è¤¦¤¹¤ë¤¿¤á¡¢¥¡¼¥Ü¡¼¥É¤Î¥¡¼ÆþÎϤËÈ¿±þ¤·¤Æ¡¢¥²¡¼¥à²èÌ̤Υ¥ã¥é¤¬°Üư¤¹¤ë¤è¤¦¤ËÀ©¸æ¤òÄɲä·¤Þ¤¹¡£
°ÜưÍѤΥ¢¥Ë¥á¡¼¥·¥ç¥ó¤ÎÀ©¸æ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡²ó°Ê¹ß¤Ë¹Ô¤¤¤Þ¤¹¡£
¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¡¢½¤Àµ¤·¤Æ¤¤¤¯¥Ý¥¤¥ó¥È¤Ï¡¢¤¹¤Ù¤Æ¤ò°ìÅ٤˵½Ò¤·¤Ê¤¤¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£
£±¤Ä£±¤Ä¡¢½ÐÍè¤ë»ö¡¢Íý²ò¤·¤Æ¤¤¤ë½èÍý¤òÀѤ߾夲¤Æ¡¢¤½¤Î·ë²Ì¤È¤·¤Æ¡¢Ê£»¨¤«¤Ä¿ÍͤʽèÍý¤¬½ÐÍè¾å¤¬¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¡Project Æâ¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤ò³«¤¡¢Create => Folder ¤òÁªÂò¤·¡¢Scripts ¥Õ¥©¥ë¥À¤òºîÀ®¤·¤Þ¤¹¡£
¡¡ºîÀ®¤·¤¿Scripts ¥Õ¥©¥ë¥À¤òÁªÂò¤·¡¢¤½¤ÎÃæ¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤ò³«¤¡¢Create => C# Script ¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£
Scripts ¥Õ¥©¥ë¥ÀÆâ¤Ë¿·¤·¤¤ C# ¥¹¥¯¥ê¥×¥È¡¦¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£
¡¡Ì¾Á°¤ò PlayerController ¤ËÊѹ¹¤·¤Þ¤¹¡£¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤·¤Æ¥¨¥Ç¥£¥¿¡¼¡ÊVisual Studio¡Ë¤òΩ¤Á¾å¤²¡¢¥¹¥¯¥ê¥×¥È¤ò½ñ¤¤¤Æ¤¤¤¤Þ¤¹¡£
¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤éɬ¤º¥»¡¼¥Ö¤ò¤·¤Þ¤¹¡£VisualStudio ¤Ç¤Ï ctrl + Shift + S ¥¡¼¤Ç°ì³ç¥»¡¼¥Ö¤Ç¤¤Þ¤¹¡£
PlayerController.cs
¡¡ÊÑ¿ô¤ÎÀë¸À¤Ë¹ç¤ï¤»¤ÆÀë¸À¤Ç¤¤ë¡¢Â°À¾ðÊó¤È¸Æ¤Ð¤ì¤ë¤â¤Î¤Î£±¤Ä¤Ç¤¹¡£ÊÑ¿ô¤ÎÀë¸À¤ÎÁ°¤Ë [ ] ÉÕ¤¤Ç½ñ¤«¤ì¤¿ÆâÍÆ¤¬Â°À¾ðÊó¤È¤Ê¤ê¤Þ¤¹¡£
¡¡º£²óÍøÍѤ·¤Æ¤¤¤ë°À¤Ï SerializeField ¤È¤¤¤¦Â°À¾ðÊó¤Ç¤¹¡£¤³¤Îµ¡Ç½¤Ï¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤ËÊÑ¿ô¤òɽ¼¨¤µ¤»¤ë¡¢¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£
¡¡¼ç¤Ë private ½¤¾þ»Ò¤È¥»¥Ã¥È¤ÇÍѤ¤¤é¤ì¡¢¥¢¥µ¥¤¥ó¤ò¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤Ç²Äǽ¤Ë¤¹¤ë¤â¤Î¤Î¡¢ÊÑ¿ô¤Î»²¾ÈÀ褬³°Éô¤Î¥¹¥¯¥ê¥×¥È¤Ë¤Ê¤¤(public¤ÎɬÍפ¬¤Ê¤¤)¾ì¹ç¤ËÍøÍѤ·¤Þ¤¹¡£
¡¡¤¿¤È¤¨¤Ð Button¥³¥ó¥Ý¡¼¥Í¥ó¥È¤äText¥³¥ó¥Ý¡¼¥Í¥ó¥È¤È¤¤¤Ã¤¿¡¢¥¢¥µ¥¤¥ó¤Ï¤¹¤ë¤â¤Î¤Î¡¢¤½¤ÎÊÑ¿ô¤ÎÍøÍÑÀ褬¾¤Î¥¹¥¯¥ê¥×¥È¤Ë¤Ï¤Ê¤¤¤è¤¦¤Ê¤â¤Î¡¢¤Ë¤ÏÍøÍѤ·¤ä¤¹¤¤¤Ç¤¹¡£
¡¡º£²ó¤Ï¥×¥ì¥¤¥ä¡¼¤Î°Üư®ÅÙ¤òÀßÄꤹ¤ë¤¿¤á¤ÎÊÑ¿ô¤ÎÀë¸À¤Ë°À¾ðÊó¤òÉÕÍ¿¤·¤Æ¤¤¤Þ¤¹¡£
°Üư®Å٤ξðÊó¤ò¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ëɽ¼¨¤µ¤»¤ë¤³¤È¤Ë¤è¤ê¡¢°Üư®ÅÙ¤ÎÄ´À°¤Ë¤¢¤¿¤ê¡¢
¥¹¥¯¥ê¥×¥ÈÆâ¤Ç¤½¤ÎÅÔÅÙ½ñ¤Ä¾¤µ¤Ê¤¯¤Æ¤â¤è¤¤¤è¤¦¤Ë¤¹¤ëÌÜŪ¤ÇÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
¡¡[] ¤Ç½ñ¤«¤ì¤¿¾ðÊó¤Ï°À¡ÊAttribute¡Ë¤È¸Æ¤Ð¤ì¤ë¤â¤Î¤Ç¤¹¡£
°À¤òÉÕÍ¿¤¹¤ë»ö¤Ç¾¤ÎÊÑ¿ô¤È¶èÊ̤·¤¿¤ê¡¢ÆÃÊÌ¤ÊµóÆ°¤òÀßÄꤹ¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
[RequireComponent(typeof(Rigidbody2D))]¡¡¡¡¡¡//¡¡<=¡¡¤³¤ì¤Ç¤¹ public class PlayerController : MonoBehaviour {
¡¡¤³¤ÎRequireComponent(¥ê¥¯¥ï¥¤¥¢¡¦¥³¥ó¥Ý¡¼¥Í¥ó¥È)°À¤Ï¡¢¥¯¥é¥¹Ì¾¤Î£±¹Ô¾å¤Ëµ½Ò¤¹¤ë°À¤Ç¤¹¡£
¡¡¤³¤Î°À¤Î(°ú¿ô)¤Ç»ØÄꤷ¤¿¥¯¥é¥¹¤ä¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¡¢¤³¤Î¥¹¥¯¥ê¥×¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢Console ¥Ó¥å¡¼¤Ë¥¨¥é¡¼¤¬½Ð¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¡¡
¡¡¤Þ¤¿¤³¤Î°À¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥¹¥¯¥ê¥×¥È¤ò¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¤È¡¢°ú¿ô¤Ç»ØÄꤷ¤Æ¤¤¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¼«Æ°Åª¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Þ¤¹¡£(º£²ó¤Ï Rigidbody2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È)
¤Ä¤Þ¤ê¤³¤Îµ¡Ç½¤Ï¡¢¥¹¥¯¥ê¥×¥È¤òÀµ¾ï¤Ëưºî¤µ¤»¤ë¤¿¤á¤ËɬÍפʥ³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¶¯À©Åª¤ËÍѰդ·¤Æ¤¯¤ì¤ëÆâÍÆ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡
¡¡º£²ó¤³¤Î PlayerController ¥¹¥¯¥ê¥×¥È¤Ë¤è¤ê Player ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò°Üư¤µ¤»¤ë¤Ë¤Ï Rigidbody2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬É¬Íפˤʤê¤Þ¤¹¡£
[RequireComponent(typeof(Rigidbody2D))]°À¤òÄɲ乤뤳¤È¤Ë¤è¤Ã¤Æ¡¢¼«Æ°Åª¤Ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¥¢¥¿¥Ã¥Á¤ò¹Ô¤¦¤È¤È¤â¤Ë¡¢¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¥¨¥é¡¼¤¬½Ð¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¡¡Header¡Ê¥Ø¥Ã¥À¡¼¡Ë°À¤Ï¡¢Àè¤Û¤É³Ø½¬¤·¤¿ RequireComponent °À¤ÈƱ¤¸¡¢Â°À¤Î£±¤Ä¤Ç¤¹¡£
¡¡Header °À¤òÊÑ¿ô¤ÎÀë¸À¤ËÄɲ乤ë¤È¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤Ë( )Æâ¤Ëµ½Ò¤·¤¿Ê¸»ú¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
[Header("°Üư®ÅÙ")] public float moveSpeed;
¤¢¤ë¤¤¤Ï
[Header("°Üư®ÅÙ")] public float moveSpeed;
¡¡µ½Ò¤ÎÊýË¡¤Ï¤É¤Á¤é¤Ç¤â¹½¤¤¤Þ¤»¤ó¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü(ÊÑ¿ô̾¤Î¾å¤Ë Header °À¤ÇÀßÄꤷ¤¿ÆâÍÆ¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë)

¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤Ëɽ¼¨¤µ¤ì¤ëÊÑ¿ô̾¤À¤±¤Ç¤¹¤È¤ï¤«¤ê¤Ë¤¯¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¤¬¡¢ÆüËܸì¤Ç¥³¥á¥ó¥È¤òÉÕ¤±¤ë¤³¤È¤¬¤Ç¤¤ë¤¿¤á¡¢ÊÑ¿ô¤ÎÆâÍÆ¤¬¤ï¤«¤ê¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£
º£¸å¤âÆÃ¤Ë¶µºàÆâ¤ËµºÜ¤¬¤Ê¤¯¤Æ¤â¡¢¼«Ê¬¤ÇȽÃǤò¤·¤Æ¡¢É¬Íפ˱þ¤¸¤Æ¤³¤Î Header °À¤ò»È¤¤¤³¤Ê¤·¤Þ¤·¤ç¤¦¡£
¡¡
¡¡¤Þ¤¿Â°À¤Ï¥«¥ó¥Þ¤Ç¶èÀڤ뤳¤È¤ÇÊ£¿ô¤ÎÉÕÍ¿¤¬²Äǽ¤Ç¤¹¡£
[SerializeField, Header("°Üư®ÅÙ")] private float moveSpeed;
»²¹Í¥µ¥¤¥È
¥¨¥¯¥¹¥×¥é¥Ü ÍÍ
¡ÚUnity¡ÛHeaderAttribute¤ò»È¤Ã¤Æ¥Õ¥£¡¼¥ë¥É¤òÀ°Íý¤·¤Æ¤ß¤Ê¥¤¥«?
https://ekulabo.com/attribute-header
¡¡Unity2019.2°Ê¹ß¤ËÄɲ䵤줿¥á¥½¥Ã¥É¤Ç¤¹¡£½èÍý·ë²Ì¤È¤·¤Æ bool ·¿¤ÇÌá¤êÃͤòÊÖ¤·¤Æ¤¯¤ì¤Þ¤¹¡£
¤³¤Î¤È¤¤Î½èÍý·ë²Ì¤È¤¤¤¦¤Î¤Ï¡¢»ØÄꤷ¤¿¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î·¿¤Î¼èÆÀ¤ò¹Ô¤¤¡¢¤½¤ì¤¬¼èÆÀ¤Ç¤¤ì¤Ðtrue¡¢¼èÆÀ¤Ç¤¤Ê¤±¤ì¤Ðfalse¤¬Ìá¤ê¤Þ¤¹¡£
¡¡¤Þ¤¿ out ¥¡¼¥ï¡¼¥É¤Ë¤è¤ëÀë¸À¤¬¤¢¤ê¤Þ¤¹¡£
¡¡out ¥¡¼¥ï¡¼¥ÉÀë¸À¤ò¹Ô¤¦¤È¡¢out ¤òÉÕ¤±¤¿°ú¿ô¤Ç»ØÄꤷ¤¿ÊÑ¿ô¤Ï¥á¥½¥Ã¥ÉÆâ¤Çɬ¤º·ë²Ì¤¬Æþ¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¤â¤Î¤Ç¤¹¡£
¤½¤Î¤¿¤á¡¢½èÍý·ë²Ì¤ÎÌá¤êÃͤ¬ true ¤Î¾ì¹ç¤Ë¤Ïɬ¤º¡¢¤³¤Î out ¤Î¸å¤ËÀë¸À¤·¤¿ÊÑ¿ôÆâ¤Ë·¿¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£
¡¡Ã¼Åª¤Ë¤¤¤¦¤Ê¤é¤Ð¡¢GetComponent ¥á¥½¥Ã¥É¤Î½èÍý¤Ë²Ã¤¨¤Æ¡¢¤½¤Î½èÍý¤ÎÀ®ÈÝȽÄê(¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¼èÆÀ½ÐÍ褿¤«¡¢½ÐÍè¤Ê¤«¤Ã¤¿¤«)¤òƱ»þ¤Ë¹Ô¤Ã¤Æ¤¯¤ì¤ë¥á¥½¥Ã¥É¤Ë¤Ê¤ê¤Þ¤¹¡£
¡ã¼ÂÁõÎã¡¡ä
private Rigidbody rb; TryGetComponent(out rb);
¡ã¼ÂÁõÎ㢡¡Ìá¤êÃͤò³èÍÑ¡ä
if(col.gameObject.TryGetComponent(out Rigidbody rigid)) { // ½èÍý¤ò½ñ¤¯ }
¡¡º£²ó¤Ï¼ÂÁõÎ㡤νèÍý¤È¤·¤ÆÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£¥¹¥¯¥ê¥×¥ÈÆâ¤Ë TryGetComponent ¥á¥½¥Ã¥É¤òľÀܵ½Ò¤·¤¿¾ì¹ç¡¢GetComponent ¥á¥½¥Ã¥É¤ÈƱÍͤˡ¢
¤³¤Î¥¹¥¯¥ê¥×¥È¤¬¥¢¥¿¥Ã¥Á¤·¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤«¤é»ØÄꤵ¤ì¤Æ¤¤¤ë¼ïÎà¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¼èÆÀ¤·¤Æ¤Þ¤¹¡£
¤½¤ì¤ò out ¥¡¼¥ï¡¼¥É¸å¤Î rb ÊÑ¿ô¤ËÂåÆþ¤·¤Æ¤¤¤Þ¤¹¡£GetComponent ¥á¥½¥Ã¥É¤Î¤è¤¦¤Ë<·¿°ú¿ô>¤ò»ØÄꤷ¤Æ¤¤¤Ê¤¤¤Î¤Ï¡¢rb ÊÑ¿ô¤Ë¤è¤Ã¤Æ·¿¤ò¿äÏÀ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¤¿¤á¤Ç¤¹¡£
¡¡out ¥¡¼¥ï¡¼¥É°Ê¹ß¤Ë¤Ï¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¼èÆÀ¤·¤¿¤¤·¿¤ÈÊÑ¿ô¤òÀë¸À¤·¤Þ¤¹¡£º£²ó¤Î¤è¤¦¤Ë»öÁ°¤ËÊÑ¿ô¤ÎÀë¸À¤ò¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ÊÑ¿ô¤Î¤ß¤òÍѰդ·¤Æ¤ª¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¼ÂÁõÎ㢤ξì¹ç¤Ï¡¢¤â¤·¤â¤³¤Î TryGetComponent ¥á¥½¥Ã¥É¤Î½èÍý·ë²Ì¤¬¼Â¹Ô²Äǽ¤Ê¤é¤Ð¡¢¤Ä¤Þ¤ê¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë Rigidbody ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢
out ¤È¤·¤ÆÍѰդ·¤¿ rigid ÊÑ¿ô¤Ë Rigidbody ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤¬ÂåÆþ¤µ¤ì¤Þ¤¹''¡£¤Þ¤¿¡¢true ¤ÎÃͤ¬¡¢¤½¤ì¤È¤ÏÊ̤˽èÍý·ë²Ì¤È¤·¤ÆÌá¤ê¤Þ¤¹¡£
out ¤ËÍѰդ·¤¿ÊÑ¿ô¤¬»öÁ°¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ëÊÑ¿ô¤Î¾ì¹ç(Î㤨¤Ð rb ÊÑ¿ô)¤Ë¤Ï¡¢Àë¸À¤µ¤ì¤Æ¤¤¤¿ÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£
¤³¤ÎÊÕ¤ê¤ÏÊÑ¿ô¤Î¥¹¥³¡¼¥×¤ò¹Í¤¨¤Æ¼ÂÁõ¤ò¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
¡¡TryGetComponent ¥á¥½¥Ã¥É¤Î½èÍý·ë²Ì¤¬ false ¤Î¾ì¹ç¤Ë¤Ï Rigidbody ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¼èÆÀ¤¬¤Ç¤¤Ê¤«¤Ã¤¿¤¿¤á¡¢rigid ÊÑ¿ô¤Ï null ¤Î¤Þ¤Þ¤Ç¡¢false ¤¬½èÍý·ë²Ì¤È¤·¤ÆÌá¤ê¤Þ¤¹''¡£
¡¡¤Ê¤ª TryGetComponent ¥á¥½¥Ã¥É¤Ë¤ÏÊ£¿ô¤Î½ñ¼°¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Á¤é¤Ï²¼µ¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
»²¹Í
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Component.TryGetComponent
https://docs.unity3d.com/ScriptReference/Component...
¡¡Ê̤ε»ö¤Ç¾Ü¤·¤¯²òÀ⤷¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤ò³Îǧ¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£
¡¡=>¡¡Input.GetAxis¥á¥½¥Ã¥É¤ÈInputManager¤Î´ØÏ¢À
¡¡Àµµ¬²½½èÍý¤Ç¤¹¡£magnitude(¥Þ¥°¥Ë¥Á¥å¡¼¥É¡£Ä¹¤µ)¤ò£±¤È¤·¤¿¥Ù¥¯¥È¥ë(ñ°Ì¥Ù¥¯¥È¥ë)¤òÊÖ¤·¤Þ¤¹¡£Ìá¤êÃÍ¤Ï Vector3 ·¿¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¡¡// ¼Ð¤á°Üư¤Îµ÷Î¥¤¬Áý¤¨¤Ê¤¤¤è¤¦¤ËÀµµ¬²½½èÍý¤ò¹Ô¤¤¡¢Ã±°Ì¥Ù¥¯¥È¥ë¤È¤¹¤ë(Êý¸þ¤Î¾ðÊó¤Ï»ý¤Á¤Ä¤Ä¡¢µ÷Î¥¤Ë¤è¤ë®ÅÙº¹¤ò¤Ê¤¯¤·¤Æ°ìÄêÃͤˤ¹¤ë) Vector3 dir = new Vector3(horizontal, vertical, 0).normalized;
¡¡¸½ºß¤Î¥Ù¥¯¥È¥ë¤ÎÊý¸þ¤ò°Ý»ý¤·¤¿¤Þ¤Þ¡¢magnitude¤¬£±¡¢¤¢¤ë¤¤¤Ï£°¤Îñ°Ì¥Ù¥¯¥È¥ë¤òºîÀ®¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¡Ê¥Ù¥¯¥È¥ë¤ÎÃͤ¬¾®¤µ¤¤¤È£°¤Ë¤Ê¤ê¤Þ¤¹¡£¡Ë
¡¡¤³¤ÎÀµµ¬²½¤ò¹Ô¤¦¤³¤È¤Ë¤è¤Ã¤Æ°ÌÃ֤αó¶á¤Ë´Ø¤ï¤é¤º¡¢magnitude ¤¬¤¹¤Ù¤Æ 1¡¢¤¢¤ë¤¤¤Ï 0 ¤ËÅý°ì¤µ¤ì¤¿Ã±°Ì¥Ù¥¯¥È¥ë¤ÎÃͤȤʤ뤿¤á¡¢
º¸¤È²¼¤ÎÊý¸þ¤Ç¤¢¤ì¤Ð -1¡¢±¦¤È¾å¤ÎÊý¸þ¤Ç¤¢¤ì¤Ð 1¤ÎÃͤ¬¥Ù¥¯¥È¥ë¤È¤·¤ÆºîÀ®¤µ¤ì¤Þ¤¹¡£Ãͤ¬ 0 ¤Ë¶á¤¤¾ì¹ç¤Ë¤Ï 0 ¤¬¥Ù¥¯¥È¥ë¤È¤·¤ÆºîÀ®¤µ¤ì¤Þ¤¹¡£
¡¡¥¡¼ÆþÎϤ¬¼Ð¤áÊý¸þ¤Ë¤Ê¤ë¤È¡¢½Ä²£Ä¾Àþ¤è¤ê¤âŤ¤µ÷Î¥¤¬À¸¤Þ¤ì¤Þ¤¹¡£¤½¤ÎÃͤò¤½¤Î¤Þ¤ÞÍøÍѤ·¤Æ¤·¤Þ¤¦¤È¡¢¼Ð¤á°Üư¤ÎÊý¤¬°Üư®ÅÙ¤¬Â®¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¤½¤³¤ÇÀµµ¬²½½èÍý¤ò¹Ô¤¤Ã±°Ì¥Ù¥¯¥È¥ë¤òºî¤ë¤³¤È¤Ç¡¢Êý¸þ¤Î¾ðÊó¤Ï¤½¤Î¤Þ¤Þ¤Ç¡¢ÃͤÀ¤±¤ò 0 ¤« 1 ¤« -1 ¤Ëºî¤êľ¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤ÎÃͤò°Üư¤ÎÆþÎÏÃͤȤ·¤ÆÍøÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¢°ÜưÊý¸þ¤Î¾ðÊó¤Ï¤½¤Î¤Þ¤Þ¤Ç¡¢°Üư¤¹¤ë®ÅÙ¤òÊäÀµ¤¹¤ë¤³¤È¤¬½ÐÍè¤Æ¤¤¤Þ¤¹¡£
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¡¦¥ê¥Õ¥¡¥ì¥ó¥¹
https://docs.unity3d.com/ja/current/ScriptReferenc...
TechProjinÍÍ
Unity¤ÎVector3¤Ç¤è¤¯»È¤¦¤â¤Î¤Þ¤È¤á
https://tech.pjin.jp/blog/2016/02/16/unity_vector3...
¡¡¥¥ã¥é¤Î°Üư¤Ë¤Ï¿§¡¹¤ÊÊýË¡¤¬¤¢¤ê¤Þ¤¹¤¬¡¢º£²ó¤Ï¡¢Rigidbody2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î´ÉÍý¤·¤Æ¤¤¤ë¡¢Velocity¡Ê¥Ù¥í¥·¥Æ¥£¡£Â®Å٥٥¯¥È¥ë¡Ë¤Î¾ðÊó¤òÁàºî¤·¤Æ¡¢¥¥ã¥é¤ò°Üư¤µ¤»¤Þ¤¹¡£
Rigidbody2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È(º£²ó¤Ï¥¥ã¥é)¤ËÂФ·¤Æ¡¢Â®ÅÙ¾ðÊó¤òÍ¿¤¨¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥¥ã¥é¤Î°Üư¤ò¹Ô¤¦¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¡¡velocity(¥Ù¥í¥·¥Æ¥£)¤È¤ÏRigidbody¥¯¥é¥¹¤Î»ý¤Ä¾ðÊó¤Î£±¤Ä¤Ç¡¢³Æ¼´(x,y,z)¤Î®Å٥٥¯¥È¥ë¤òɽ¤·¤Æ¤¤¤Þ¤¹¡£
¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬Ää»ß¤·¤Æ¤¤¤ë¾ì¹ç¡¢velocity¤ÎÃͤϤ¹¤Ù¤Æ 0 ¤Ç¤¹¡£(velocity = 0, 0, 0)
// velocity(®ÅÙ)¤Ë¿·¤·¤¤ÃͤòÂåÆþ¤·¤Æ°Üư rb.velocity = dir * moveSpeed;
¡¡x¼´¤È z¼´¤Ë¤Ä¤¤¤Æ¤Ï¡¢dir ÊÑ¿ô¤Ç½àÈ÷¤·¤¿¥¡¼ÆþÎϤÎÃͤ¬ÂåÆþ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ÎÃÍ¤È moveSpeed ÊÑ¿ô¤Î·×»»·ë²Ì¤¬Æþ¤ê¡¢¤½¤Î¼´¤ÎÊý¸þ¤Ø°Üư¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡½èÍý¤Îľ¸å¤Ë Debug.Log¥á¥½¥Ã¥É¤òÆþ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢Console ¥Ó¥å¡¼¤òÄ̤¸¤Æ¡¢¤³¤Î velocity ¤ÎÃÍ¤ÎÆ°¤¤ò´Ñ»¡¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥¡¼ÆþÎϤò¹Ô¤¤¤Ê¤¬¤é¡¢¤É¤Î¤è¤¦¤Ê½èÍý¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Þ¤·¤ç¤¦¡£
»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Rigidbody2D.velocity
https://docs.unity3d.com/jp/current/ScriptReferenc...
Samurai BlogÍÍ
¡ÚUnityÆþÌç¡ÛRigidbody¤Ç¼«ºß¤Ë°Üư!velocity¤Î³èÍÑÊýË¡!
https://www.sejuku.net/blog/55084
¡¡Rigidbody ¤Ë¤è¤ëʪÍý±é»»¤Î½èÍý¤ò·Ñ³Ū¤Ë½èÍý¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢Update ¥á¥½¥Ã¥É¤Ç¤Ï¤Ê¤¯¤Æ FixedUpdate ¥á¥½¥Ã¥É¤òÍøÍѤ·¤ÆÀ߷פò¹Ô¤¤¤Þ¤¹¡£
¡¡FixedUpdate ¥á¥½¥Ã¥É¤Ï½é´üÀßÄê¤Ç¤Ï 0.02ÉÃ(1Éô֤Ë50²ó)¤´¤È¤Î¸ÇÄê¥Õ¥ì¡¼¥à¥ì¡¼¥È¤Ç¡¢ÊªÍý±é»»¤Î½èÍý¤Î¹¹¿·¤ò¹Ô¤¦Ä¾Á°¤Ë¼«Æ°Åª¤Ë¸Æ¤Ó¤À¤µ¤ì¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£
Update ¥á¥½¥Ã¥É¤Ï¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥ÈÅù¤Îưºî¤Î¥ì¥ó¥À¥ê¥ó¥°Á°¤ËËè¥Õ¥ì¡¼¥à¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢½èÍý¤Î¥¿¥¤¥ß¥ó¥°¤È¥Õ¥ì¡¼¥à¤Î¸Æ¤Ó½Ð¤·¤¬¸ÇÄ꤫¤É¤¦¤«¤¬¡¢
Update ¥á¥½¥Ã¥É¤È FixedUpdate ¥á¥½¥Ã¥É¤Î°ã¤¤¤Ç¤¹¡£
¡¡°Ê¾å¤Î¤³¤È¤«¤é¡¢FixedUpdate ¥á¥½¥Ã¥É¤ÏʪÍýµóư¤Î¹¹¿·¤ÎľÁ°¤Ë¸Æ¤Ð¤ì¤ë¥á¥½¥Ã¥É¤Ç¤¢¤ë¤¿¤á¡¢ÊªÍý±é»»¤Î½èÍý¤ò¹Ô¤¦¤³¤È¤ËŬ¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç
Rigidbody ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÍøÍѤ·¤¿°Üư½èÍý¤Ë¤Ä¤¤¤Æ¤Ï¡¢FixedUpdate ¥á¥½¥Ã¥É¤Ë¤Æ¹Ô¤¦¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
»²¹Í¥µ¥¤¥È
SamuraiBlog ÍÍ
¡ÚUnityÆþÌç¡ÛUpdate¥á¥½¥Ã¥É¤È¤Ï?FixedUpdate¤È¤Î°ã¤¤¤âŰÄì²òÀâ!
https://www.sejuku.net/blog/49382
¤«¤á¤¯¤á ÍÍ
Unity¤ÎUpdate¤ÈFixedUpdate¡¢LateUpdate¥á¥½¥Ã¥É¤Ë¤Ä¤¤¤Æ
https://gametukurikata.com/basic/update
¡¡´Ø¿ô¡Ê¥á¥½¥Ã¥É¡Ë¤ä¥¯¥é¥¹¤òºîÀ®¤·½ª¤ï¤ê¤Þ¤·¤¿¤é¡¢É¬¤º¤½¤Î´Ø¿ô¤ä¥¯¥é¥¹¤ÎÀâÌÀ¤ò½ñ¤¯¤è¤¦¤Ë¿´¤¬¤±¤Þ¤·¤ç¤¦¡£½ñ¤¯¾ì½ê¤Ï´Ø¿ô̾¡¢¤¢¤ë¤¤¤Ï¥¯¥é¥¹Ì¾¤Î£±¹Ô¾å¤ÎÉôʬ¤Ç¤¹¡£
Ⱦ³Ñ¥¹¥é¥Ã¥·¥å¤ò3¸ÄϢ³¤Çµ½Ò¤¹¤ë¤ÈÀâÌÀÍѤΥ³¥á¥ó¥È¤Ç¤¢¤ë¥µ¥Þ¥ê¡¼(³µÍ×)¤¬¼«Æ°Åª¤Ëµ½Ò¤µ¤ì¤Þ¤¹¡£
/// <summary> /// °Üư /// </summary> private void Move() {¡¡
¡¡Ê̤ε»ö¤Ç¾Ü¤·¤¯²òÀ⤷¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤ò³Îǧ¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£
¡¡=>¡¡ÃΤäƤª¤¤¿¤¤Æ¦Ãμ±
¡¡¥Ò¥¨¥é¥ë¥¡¼¤Î Player ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë PlayerController ¥¹¥¯¥ê¥×¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£
¥¢¥¿¥Ã¥Á¤·¤¿¤é¡¢É¬¤º¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Î³Îǧ¤ò¹Ô¤¤¡¢Àµ¾ï¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡PlayerController ¥¹¥¯¥ê¥×¥È¤Ë¹ç¤ï¤»¤Æ¡¢Rigidbody2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤â¼«Æ°Åª¤ËƱ»þ¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ï PlayerController ¥¹¥¯¥ê¥×¥È¤ËÀßÄꤷ¤Æ¤¢¤ë RequireComponent °À¤Ë¤è¤ëµ¡Ç½¤Ç¤¹¡£
¡¡Player ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀßÄê¤ò¹Ô¤¤¤Þ¤¹¡£ÀßÄꤹ¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï£²¤Ä¤Ç¤¹¡£
¡¡ºÇ½é¤Ë Rigidbody2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÀßÄê¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡Gravity Scale ¤ÎÃͤò 0 ¤ËÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£0 ¤Ë¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢½ÅÎϤαƶÁ¤ò¼õ¤±¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
¡¡
¡¡Constraints ¥×¥í¥Ñ¥Æ¥£Æâ¤Î Freeze Rotation ¤Î Z ¤Ë¥Á¥§¥Ã¥¯¤ò¤¤¤ì¤Æ¤¯¤À¤µ¤¤¡£
Rigidbody2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÍøÍѤ·¤Æ°Üư¤ò¹Ô¤¦¾ì¹ç¡¢ºÂɸ¤òľÀÜÊѹ¹¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ÊªÍý±é»»¤òÍøÍѤ·¤Æ¡¢¤½¤Î·ë²Ì¤È¤·¤Æ¥¥ã¥é¤ÎºÂɸ¤¬°Üư¤·¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢½ÅÎϤäË໤¤È¤¤¤Ã¤¿ÊªÍýˡ§¤¬°Üư¤ÎºÝ¤Ë´Ø¤ï¤Ã¤Æ¤¯¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£Â¾¤Î¤â¤Î¤Ë¤Ö¤Ä¤«¤ì¤ÐÄä»ß¤·¤Þ¤¹¤¬¡¢¤½¤Î»þ¤Ë²Ã®¤¬¤¢¤ì¤Ð¡¢²óž¤¬È¯À¸¤·¤ÆÁ°¤Î¤á¤ê¤ËÅݤì¤Þ¤¹¡£
¤³¤ÎÀßÄê¤Ë¤è¤ê¡¢¥¥ã¥é¤¬°Üư¤·¤¿¤ê¡¢Ää»ß¤·¤¿¤ê¤·¤¿ºÝ¤Ë¡¢²Ã®¤Ë¤è¤ëÀª¤¤¤¬¤¢¤Ã¤Æ¤â²óž¤òµ¯¤³¤µ¤Ê¤ê¡¢Åݤì¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
Player ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡Rigidbody2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È

¡¡Â³¤¤¤Æ¡¢PlayerController ¥¹¥¯¥ê¥×¥È¤ÎÃæ¤Ç SerializeField °À¤ÇÀë¸À¤·¤Æ¤¤¤ë MoveSpeed ÊÑ¿ô¤¬¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢Å¬µ¹¤ÊÃͤòÂåÆþ¤·¤Æ¤¯¤À¤µ¤¤¡£
Player ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡PlayerController ¥³¥ó¥Ý¡¼¥Í¥ó¥È

¡¡³ÎǧÍѤËÁ´¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü¤ò·ÇºÜ¤·¤Þ¤¹¡£
Player ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡Á´¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü

¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£
¡¡¥¹¥¯¥ê¥×¥ÈÆâ¤ÎÀ©¸æ½èÍý¤Ë¤Ä¤¤¤Æ¡¢¤·¤Ã¤«¤ê¤ÈÍý²ò¤ò¤·¤¿¾å¤Ç¡¢¥²¡¼¥à¤ò¼Â¹Ô¤·¤Æ½èÍý¤ò³Îǧ¤·¤Þ¤·¤ç¤¦¡£
¡ã¼ÂÁõư²è¡ä
ư²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡Unity¤Ë¤Ï InputManager ¤È¤¤¤¦ÀßÄê¹àÌܤ¬¤¢¤ê¡¢¤³¤ÎÃæ¤ËºÇ½é¤«¤éÆÃÄê¤Î¥¡¼ÆþÎÏÍѤΥ¡¼¥Ü¡¼¥É¤Î¥Ü¥¿¥ó¤òÅÐÏ¿¤·¤Æ¤¢¤ê¤Þ¤¹¡£
¡¡InputManager¤Ï¡¢Unity¤Îº¸¾å¤Î¥á¥Ë¥å¡¼¤Ë¤¢¤ë Edit => Project Settings ¤«¤éProject Settings ¥¦¥¤¥ó¥É¥¦¤ò³«¤¡¢º¸¤Î¹àÌܤ«¤é InputManager ¤òÁªÂò¤¹¤ë¤È³Îǧ¤ÈÀßÄ꤬²Äǽ¤Ç¤¹¡£
¡¡º£²ó¤ÏÀßÄê¤ò¤½¤Î¤Þ¤ÞÍøÍѤ·¤Þ¤¹¡£¹àÌܤˤ¢¤ë¡¢Horizontal ¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£²¼µ¤Î¤è¤¦¤ÊÀßÄêÍÑ¤ÎÆâÍÆ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
InputManager

¡¡°ìÈÖ¾å¤ÎÀßÄê¹àÌÜ¤Ë Name ¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ÎÉôʬ¤Ë»ØÄꤷ¤¿Ê¸»úÎó¤òÌ¿Î᤹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥¡¼ÆþÎÏÍѤÎȽÄê¤ò¹Ô¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
Horizontal ¤Ë¤Ï»Ï¤á¤«¤é Horizontal ¤È¤¤¤¦Ê¸»úÎó¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤³¤Î¾ðÊó¤òÍøÍѤ·¤Æ¥¡¼ÆþÎÏÍѤÎȽÄê¤ò¹Ô¤¦½èÍý¤ò¥¹¥¯¥ê¥×¥È¤Ëµ½Ò¤·¤Þ¤¹
¡¡¼ÂºÝ¤Ë¡¢¤É¤Î¥¡¼¤ÎÆþÎϤòȽÄꤹ¤ë¤«¤Ç¤¹¤¬¡¢¤³¤Î Horizontal ¤Ë¤Ï¡¢Negative Button ¤Ë left(º¸Ìð°õ¥¡¼)¡¢
Positive Button ¤Ëright(±¦Ìð°õ¥¡¼)¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¿åÊ¿(²£)Êý¸þÍѤΥ¡¼ÆþÎϤÎȽÄê¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡Vertical ¤Ë¤Ä¤¤¤Æ¤âƱÍͤǤ¹¡£¤¢¤ï¤»¤Æ³Îǧ¤·¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£
¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£
¡¡¼¡¤Ï¡¡¼ê½ç£¶¡¡¡Ý¥×¥ì¥¤¥ä¡¼¥¥ã¥é¤Î°Üư¥¢¥Ë¥á¤ÎºîÀ®¡Ý¡¡¤Ç¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯