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

¡¡¤³¤Î¼ê½ç¤Ç¤Ï¡¢ºÇ½ªÅª¤Ê¼ÂÁõÌÜɸ¤ò¡Ö¥­¥ã¥é¤Î°ÌÃÖ¤«¤é¡¢¥¯¥ê¥Ã¥¯(¥¿¥Ã¥×)¤·¤¿Êý¸þ¤Ë¸þ¤±¤Æ¥Ð¥ì¥Ã¥È¤ò°ÜÆ°¤µ¤»¤ë¡×¤È¤·¡¢¤³¤Î½èÍý¤ò¼ÂÁõ¤¹¤ë¤Ë¤¢¤¿¤ê¡¢
£´¤Ä¤Î¹©Äø¤òÄ̤·¤Æ¡¢¤É¤ó¤ÊÉ÷¤Ë£±¤Ä¤Î½èÍý¤¬ºî¤é¤ì¤Æ¤¤¤¯¤Î¤«¡¢¼ÂÁõ¤ò¹Ô¤¦¤Þ¤Ç¤Î²áÄø¤ò´Þ¤á¤Æ³Ø½¬¤·¤Æ¤¤¤­¤Þ¤¹¡£

¡¡°Ê²¼¤ÎÆâÍƤǽçÈ֤˼ÂÁõ¤ò¿Ê¤á¤Æ¤¤¤­¤Þ¤¹¡£

¼ê½ç£¸¡¡¡Ý¥¿¥Ã¥×¤·¤¿°ÌÃÖ¾ðÊó¤ò¥²¡¼¥àÆâ¤ËÈ¿±Ç¤¹¤ë½èÍý¤ò¼ÂÁõ¡Ý
£±£´¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥Þ¥¦¥¹¤Îº¸¥¯¥ê¥Ã¥¯(¥¿¥Ã¥×)¤ò¤·¤¿»þ¤Î°ÌÃÖ¾ðÊó¤ò¼èÆÀ¤Ç¤­¤ë½èÍý¤òÄɲ乤ë
£±£µ¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥¿¥Ã¥×¤Î°ÌÃÖ¾ðÊó¤È¥­¥ã¥é¤Î°ÌÃÖ¤«¤éÊý¸þ¤ò·×»»¤¹¤ë½èÍý¤òÄɲ乤ë
£±£¶¡¥Bullet ¥¹¥¯¥ê¥×¥È¤È PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥Ð¥ì¥Ã¥È¤ËÊý¸þ¤Î¾ðÊó¤òÍøÍѤ·¤Æ°ÜÆ°¤¹¤ë¤è¤¦¤ËÀ©¸æ¤ò½¤Àµ¤¹¤ë
£±£·¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢Êý¸þ¤Î¾ðÊó¤òÀµµ¬²½½èÍý¤·¤Æ¡¢²èÌ̤ò¥¿¥Ã¥×¤·¤¿°ÌÃ֤ˤè¤ë®ÅÙº¹¤ò½¤Àµ¤¹¤ë



¡¡¿·¤·¤¤³Ø½¬ÆâÍƤϡ¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£

¡¡¡¦Input.mousePosition ÊÑ¿ô
¡¡¡¦Camera.ScreenToWorldPoint(Vector3 position) ¥á¥½¥Ã¥É
¡¡¡¦Vector3.Scale ¥á¥½¥Ã¥É
¡¡¡¦Vector3.normalized ÊÑ¿ô¤òÍøÍѤ·¤¿Àµµ¬²½½èÍý



£±£´¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥Þ¥¦¥¹¤Îº¸¥¯¥ê¥Ã¥¯(¥¿¥Ã¥×)¤ò¤·¤¿»þ¤Î°ÌÃÖ¾ðÊó¤ò¼èÆÀ¤Ç¤­¤ë½èÍý¤òÄɲ乤ë

£±¡¥Àß·×


¡¡ºÇ½ªÅª¤ÊÌÜɸ¤Ç¤¢¤ë¡¢¥Ð¥ì¥Ã¥È¤ò¥¯¥ê¥Ã¥¯¤·¤¿Êý¸þ¤Ë°ÜÆ°¤µ¤»¤ë½èÍý¤Ë¤Ï¡¢¡Ö¥­¥ã¥é¤«¤é¤ß¤¿¡¢¥¯¥ê¥Ã¥¯¤·¤¿Êý¸þ¡×¤È¤¤¤¦¾ðÊó¤¬É¬Íפˤʤê¤Þ¤¹¡£
Êý¸þ¤Î¾ðÊó¤Ï·×»»¤¹¤ë¤³¤È¤Ç»»½Ð¤Ç¤­¤Þ¤¹¤¬¡¢¤½¤Î¤¿¤á¤Ë¤Ï¡¢£²¤Ä¤Î°ÌÃÖ¾ðÊó¤¬É¬Íפˤʤê¤Þ¤¹¡£
¤½¤Î¤¦¤Á¤Î£±¤Ä¤¬¡¢¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃÖ¾ðÊó¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¤³¤Î¼ê½ç¤Ç¤Ï¡¢¤³¤Î¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃ֤ξðÊó¤ò¼èÆÀ¤¹¤ë¤¿¤á¤ÎÀ©¸æ½èÍý¤ò¼ÂÁõ¤·¤Æ¤¤¤­¤Þ¤¹¡£

¡¡¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃÖ¾ðÊó¤Ç¤¹¤¬¡¢Unity ¤¬ÍÑ°Õ¤·¤Æ¤¤¤ë Camera ¥¯¥é¥¹¤Ë¤Ï¡¢¥«¥á¥é¤Î²èÌ̤ΰÌÃÖ¾ðÊó¤òÄ̤¸¤Æ¥ï¡¼¥ë¥ÉºÂɸ¤ËÊÑ´¹¤¹¤ë¥á¥½¥Ã¥É¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤³¤Á¤é¤òÍøÍѤ·¤Þ¤¹¡£
¤³¤Î¥á¥½¥Ã¥É¤Ï°ú¿ô¤È¤·¤Æ Vector3 ·¿¤ò½àÈ÷¤·¤Æ»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤Þ¤¿Ìá¤êÃͤâ Vector3 ·¿¤Ç¤¹¡£

¡¡°ú¿ô¤Ë¤â Unity ¤¬ÍÑ°Õ¤·¤Æ¤¤¤ë Input ¥¯¥é¥¹¤Ë¤Ï¥Þ¥¦¥¹¤Î¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃÖ¾ðÊó¤ò Vector3 ·¿¤Ë¤·¤Æ¼èÆÀ¤Ç¤­¤ëÊÑ¿ô¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢
¤³¤Á¤é¤òÁȤ߹ç¤ï¤»¤ÆÍøÍѤ·¤Æ¤¤¤­¤Þ¤¹¡£


£²¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥Þ¥¦¥¹¤Îº¸¥¯¥ê¥Ã¥¯(¥¿¥Ã¥×)¤ò¤·¤¿»þ¤Î°ÌÃÖ¾ðÊó¤ò¥«¥á¥é¤òÄ̤¸¤Æ¼èÆÀ¤¹¤ë½èÍý¤òÄɲ乤ë


¡¡¥Þ¥¦¥¹¤Îº¸¥¯¥ê¥Ã¥¯¤ò¤·¤¿»þ¡¢¤È¤¤¤¦½èÍý¼«ÂΤϤ¹¤Ç¤Ë Update ¥á¥½¥Ã¥ÉÆâ¤Ë if ʸ¤Î¾ò·ï¼°¤È¤·¤ÆÍÑ°Õ¤·¤Æ¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢
¤³¤Á¤é¤ÎÃæ¤Ë¥«¥á¥é¤òÄ̤¸¤Æ¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃÖ¾ðÊó¤ò¼èÆÀ¤¹¤ë½èÍý¤òÄɵ­¤·¤Æ¤¤¤­¤Þ¤¹¡£

¡¡À߷פǹͤ¨¤¿ÊýË¡¤ÎÊÑ¿ô¤ä¥á¥½¥Ã¥É¤Î²òÀ⤬¼¡¤ÎÃʤ«¤éºÜ¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢ÆâÍƤò³Îǧ¤·¤Ê¤¬¤é½èÍý¤ò¹Í¤¨¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£


PlayerController.cs

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



£³¡¥¡ãInput.mousePosition ÊÑ¿ô¡ä


¡¡Unity ¤¬ÍÑ°Õ¤·¤Æ¤¤¤ë Input ¥¯¥é¥¹¤Î»ý¤Ä static ÊÑ¿ô¤Ç¤¹¡£¥¯¥é¥¹Ì¾.static ÊÑ¿ô¤Èµ­½Ò¤¹¤ë¤³¤È¤ÇÍøÍѤǤ­¤Þ¤¹¡£
º£²ó¤Î¾ì¹ç¤Ç¤¢¤ì¤Ð¡¢Input.mousePosition ¤È½ñ¤¯¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤³¤ÎÊÑ¿ô¤òÍøÍѤǤ­¤Þ¤¹¡£

¡¡¤³¤ÎÊÑ¿ô¤Ç¤Ï¡¢¸½ºß¤Î¥Þ¥¦¥¹¤Î°ÌÃ֤Υԥ¯¥»¥ëºÂɸ(x, y)¤ò¼èÆÀ¤·¤Þ¤¹¡£¥Þ¥¦¥¹¤Î¾ðÊó¤ÏÊ¿Ì̤Ǥ¢¤ë¤¿¤á¡¢z ºÂɸ¤Î¾ðÊó¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¤³¤Î¾ðÊó¤È¼¡¤Î ScreenToWorldPoint ¥á¥½¥Ã¥É¤òÁȤ߹ç¤ï¤»¤ë¤³¤È¤Ë¤è¤ê¡¢¥Þ¥¦¥¹¤Î°ÌÃÖ¤ò¥²¡¼¥àÆâ¤ÎºÂɸ¤ËÊÑ´¹¤·¤Æ¤¤¤Þ¤¹¡£

¡¡¤É¤¦¤¤¤Ã¤¿Ãͤ¬¼èÆÀ¤Ç¤­¤Æ¤¤¤ë¤«¤Ï Debug.Log ¤ò»ÈÍѤ¹¤ë¤³¤È¤¬³Îǧ¤Ç¤­¤Þ¤¹¤Î¤Ç¡¢¼ÂºÝ¤Ëµ­ºÜ¤·¤ÆÃͤò³Îǧ¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Input.mousePosition
https://docs.unity3d.com/ja/2019.4/ScriptReference...


£´¡¥¡ãCamera.ScreenToWorldPoint(Vector3 position)¥á¥½¥Ã¥É¡ä


¡¡Unity ¤¬ÍÑ°Õ¤·¤Æ¤¤¤ë Camera ¥¯¥é¥¹¤Î»ý¤Ä¥á¥½¥Ã¥É¤Î£±¤Ä¤Ç¤¹¡£¥«¥á¥é¤ò»È¤¤¡¢°ú¿ô¤ÎºÂɸ¤ò¥ï¡¼¥ë¥ÉºÂɸ¤ËÊÑ´¹¤·¤Þ¤¹¡£

¡¡// ²èÌ̤ò¥¿¥Ã¥×(¥¯¥ê¥Ã¥¯)¤·¤¿°ÌÃÖ¤ò¥«¥á¥é¤Î¥¹¥¯¥ê¡¼¥óºÂɸ¤Î¾ðÊó¤òÄ̤¸¤Æ¥ï¡¼¥ë¥ÉºÂɸ¤ËÊÑ´¹
  Vector3 tapPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);

¡¡Camera.main ¤Èµ­½Ò¤¹¤ë¤³¤È¤Ç¡¢¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤¢¤ë Main Camera ¥¿¥°¤ÎÀßÄꤵ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤òÍøÍѤǤ­¤Þ¤¹¡£
Ä̾ï¤Ç¤¢¤ì¤Ð Main Camera ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬¤³¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ËÅö¤¿¤ê¤Þ¤¹¡£

¡¡º£²ó¤Ï°ú¿ô¤Ë¥Þ¥¦¥¹¤ÎºÂɸ(Input.mousePosition)¤ò»ØÄꤷ¡¢¤½¤Î°ÌÃÖ¤ò¥²¡¼¥à¤Î¥ï¡¼¥ë¥ÉºÂɸ¤ËÊÑ´¹(Ìá¤êÃÍ)¤¹¤ë½èÍý¤ò¹Ô¤¦¤³¤È¤Ç¥Þ¥¦¥¹¤Î°ÌÃ֤ȥ²¡¼¥à²èÌ̤ΰÌÃ֤ξðÊó¤òƱ´ü¤µ¤»¤Æ¤¤¤Þ¤¹¡£

¡¡Ìá¤êÃͤȤ·¤Æ¤Ï Vector3 ·¿¤ÇÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢½èÍý¤Îº¸ÊÕ¤Ë Vector3 ·¿¤ÎÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¤ª¤¯¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤³¤Î¥á¥½¥Ã¥É¤Î½èÍý·ë²Ì¤Î¾ðÊó¤ò¼õ¤±¼è¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Camera.ScreenToWorldPoint
https://docs.unity3d.com/ja/current/ScriptReferenc...


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


¡¡¥²¡¼¥à¤ò¼Â¹Ô¤·¡¢Game¥Ó¥å¡¼¤ò¥Þ¥¦¥¹¤Îº¸¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¤¯¤À¤µ¤¤¡£º¸¥¯¥ê¥Ã¥¯¤ò¤¹¤ë¤¿¤Ó¤Ë¡¢if ʸÆâ¤Î½èÍý¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢
¤½¤ÎÅÔÅÙ¡¢Console ¥Ó¥å¡¼¤Ë°ÌÃÖ¾ðÊó¤ÎÃͤ¬É½¼¨¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢¥Þ¥¦¥¹¤ÎºÂɸ°ÌÃÖ¤òÀµ¾ï¤Ë¥²¡¼¥àÆâ¤Î°ÌÃÖ¾ðÊó¤È¤·¤ÆÊÑ´¹½èÍý¤¬½ÐÍè¤Æ¤¤¤Þ¤¹¡£


¡ã¼Â¹ÔÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯


¡¡¤³¤ÎÃʳ¬¤Ç¤Ï¤Þ¤À¥Ð¥ì¥Ã¥È¤Ï¾åÊý¸þ¤Ëȯ¼Í¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¼¡°Ê¹ß¤Î¼ê½ç¤Ç¡¢½çÈ֤ˤ³¤Î°ÌÃÖ¾ðÊó¤òÍøÍѤ·¤Æ¥Ð¥ì¥Ã¥È¤ò¥¯¥ê¥Ã¥¯¤·¤¿Êý¸þ¤Øȯ¼Í¤Ç¤­¤ë¤è¤¦¤Ë²þÎɤ·¤Æ¤¤¤­¤Þ¤¹¡£


£±£µ¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥¿¥Ã¥×¤Î°ÌÃÖ¾ðÊó¤È¥­¥ã¥é¤Î°ÌÃÖ¤«¤éÊý¸þ¤ò·×»»¤¹¤ë½èÍý¤òÄɲ乤ë

£±¡¥Àß·×


¡¡¥¯¥ê¥Ã¥¯¤·¤Æ¼èÆÀ¤·¤¿°ÌÃÖ¾ðÊó¤Ï¤¤¤ï¤Ð¡ÖÅÀ¡×¤Î¾ðÊó¤Ç¤¹¡£
¡ÖÅÀ¡×¤È¤·¤Æ¡¢¤É¤Î°ÌÃ֤Ǥ¢¤ë¤«¤Ï¤ï¤«¤ë¤Î¤Ç¤¹¤¬¡¢¤½¤Î°ÌÃÖ¤¬¡¢¤É¤Î°ÌÃÖ¤«¤é¤ß¤Æ¡¢¤É¤Î°Ì¤Îµ÷Î¥¤ËÅö¤¿¤ë¤Î¤«¡¢¤È¤¤¤¦ÌÜɸ¤È¤·¤Æ¤Î¾ðÊ󤬤¢¤ê¤Þ¤»¤ó¡£

¡¡¤½¤Î¤¿¤á¡¢¤â¤¦£±¤Ä¤Î¡ÖÅÀ¡×¤È¤Ê¤ë¡¢¤¤¤ï¤Ð»ÏÅÀ¤È¤Ê¤ë¾ðÊó¤òÍÑ°Õ¤·¡¢¤½¤ì¤é¤ò·ë¤ó¤Ç¡ÖÀþ¡×¤È¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢
»ÏÅÀ¤«¤é¸«¤Æ¡¢¤É¤Î°ÌÃ֤ˤ¢¤ë¤Î¤«¡¢¤É¤Î°Ì¤Îµ÷Î¥¤Ë¤¢¤ë¤Î¤«¡¢¤½¤·¤Æ¡¢¤É¤Î¸þ¤­¤Ë¤¢¤ë¤Î¤«¡¢¤È¤¤¤¦¡ÖÊý¸þ¡×¤òƳ¤­½Ð¤¹¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡°ìÊý¤ÎÅÀ¤Î¾ðÊó¤Ï¥Þ¥¦¥¹¤Î¥¯¥ê¥Ã¥¯°ÌÃ֤Ǥ¹¤Î¤Ç¡¢¤½¤ì¤ËÂФ·¤ÆÊý¸þ¤òµá¤á¤¿¤¤»ÏÅÀ¤Î¾ðÊó¤Ï¥­¥ã¥é¤Î°ÌÃ֤ˤʤê¤Þ¤¹¡£

¡¡¤Ä¤Þ¤ê¡¢¥­¥ã¥é¤Î°ÌÃÖ¤«¤é¸«¤Æ¡¢¥Þ¥¦¥¹¤Î¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃ֤ޤǤε÷Î¥¤ò·×»»¤¹¤ë¤³¤È¤Ç¡ÖÊý¸þ¡×¤ò»»½Ð¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¤³¤ì¤ÏÅÀ¤Î¾ðÊó¡Ê¤É¤Á¤é¤â Vector3·¿)¤ò¸º»»¤¹¤ë¤³¤È¤Çµá¤á¤é¤ì¤Þ¤¹¡£

¡¡¥­¥ã¥é¤Î°ÌÃ֤ȤϤ¹¤Ê¤ï¤Á¡¢PlayerController ¥¹¥¯¥ê¥×¥È¤¬¥¢¥¿¥Ã¥Á¤·¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î°ÌÃÖ¾ðÊó¤ò»Ø¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤é¤ò¸µ¤Ë·×»»¼°¤ò¹Í¤¨¤Æ½èÍý¤ò¼ÂÁõ¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£


£²¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥Þ¥¦¥¹¥¯¥ê¥Ã¥¯¤Î°ÌÃÖ¾ðÊó(A)¤È¥­¥ã¥é¤Î°ÌÃÖ(B)¤«¤éÊý¸þ¤ò·×»»¤¹¤ë½èÍý¤òÄɲ乤ë


¡¡¤½¤ì¤Ç¤ÏÀè¤Û¤É¤Î°ÌÃÖ¾ðÊó¤Î¼èÆÀ¤Î½èÍý¤Î¤¢¤È¤Ë¡¢Êý¸þ¤ò·×»»¤¹¤ë½èÍý¤òÄɲä·¤Þ¤¹¡£

¡¡¤Þ¤º¤Ï¤É¤Î°ÌÃ֤˽èÍý¤òÄɲ乤ì¤Ð¤è¤¤¤Î¤«¤ò¡¢ÆüËܸì¤Ç¥³¥á¥ó¥È¤ò½ñ¤¤¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¤½¤ì¤«¤é¡¢¥×¥í¥°¥é¥à¤È¤·¤Æ·×»»¼°¤òµ­½Ò¤·¤Æ¤¤¤­¤Þ¤¹¡£
¤³¤¦¤¤¤Ã¤¿ÆâÉô¤Î·×»»¤Î¾ì¹ç¡¢Debug.Log ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ·×»»·ë²Ì¤ò Console ¥Ó¥å¡¼¤Ë½ÐÎϤ·¡¢·×»»¤Ç¤­¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£


PlayerController.cs

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



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


¡¡¥²¡¼¥à¤ò¼Â¹Ô¤·¡¢Game¥Ó¥å¡¼¤ò¥Þ¥¦¥¹¤Îº¸¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¤¯¤À¤µ¤¤¡£
Console ¥Ó¥å¡¼¤Ë¡¢°ÌÃÖ¾ðÊó¤ÎÃͤ˳¤¤¤Æ¡¢Êý¸þ¤ÎÃͤ¬É½¼¨¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ì¤Ð¡¢¥Þ¥¦¥¹¤Î°ÌÃ֤ȥ­¥ã¥é¤Î°ÌÃÖ¤«¤éÀµ¾ï¤ËÊý¸þ¤Î·×»»½èÍý¤¬½ÐÍè¤Æ¤¤¤Þ¤¹¡£


¡ã¼Â¹ÔÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯


¡¡Êý¸þ¤ò·×»»¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤·¤¿¤¬¡¢¸½ºß¤³¤Î¾ðÊó¤Ï PlayerController ¥¹¥¯¥ê¥×¥È¤Î¤ß¤¬ÇÄ°®¤·¤Æ¤¤¤ë¾ðÊó¤Ç¤¹¡£
¤³¤Î¾ðÊó¤ò¥Ð¥ì¥Ã¥È¦¤Ë¤âÅÁ¤¨¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¡¥á¥½¥Ã¥É¤Ë¤Ï°ú¿ô(¤Ò¤­¤¹¤¦)¤È¤¤¤¦¡¢ÊÑ¿ô¤ò²ð¤·¤Æ¾ðÊó¤òÁ÷¼õ¿®¤¹¤ëµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤òÍøÍѤ·¤Þ¤·¤ç¤¦¡£


£±£¶¡¥Bullet ¥¹¥¯¥ê¥×¥È¤È PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥Ð¥ì¥Ã¥È¤ËÊý¸þ¤Î¾ðÊó¤òÍøÍѤ·¤Æ°ÜÆ°¤¹¤ë¤è¤¦¤ËÀ©¸æ¤ò½¤Àµ¤¹¤ë

£±¡¥Bullet ¥¹¥¯¥ê¥×¥È¤ÎÀß·×


¡¡PlayerController ¥¹¥¯¥ê¥×¥È¤Ç¤ÏÊý¸þ¤Î¾ðÊó¤ò·×»»¤·¤Æ¼èÆÀ¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
¥Ð¥ì¥Ã¥È¤Ë¤â¤³¤Î¡ÖÊý¸þ¡×¤Î¾ðÊó¤òÆϤ±¤ë¤³¤È¤¬½ÐÍè¤ì¤Ð¡¢¥Ð¥ì¥Ã¥È¤ò°ÜÆ°¤µ¤»¤ëºÝ¤Î¡ÖÊý¸þ¡×¤È¤·¤ÆÍøÍѤǤ­¤ë¤è¤¦¤Ë¡¢¥Ð¥ì¥Ã¥È¤Î°ÜÆ°Àè¤òÊѹ¹¤Ç¤­¤Þ¤¹¡£

¡¡¤½¤Î¤¿¤á¤Ë¤Ï¡¢PlayerController ¥¹¥¯¥ê¥×¥È¤«¤é ShotBullet ¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹Ì¿Îá¤ò¹Ô¤¦ºÝ¤Ë¡¢°ú¿ô¤È¤·¤Æ¡ÖÊý¸þ¡×¤Î¾ðÊó¤ò ShotBullet ¥á¥½¥Ã¥É¤ËÅϤ·¤Æ¤â¤é¤¦¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢¾ðÊó¤òÁ÷¤ê½Ð¤¹¡Êȯ¿®¤¹¤ë¡Ë¦¤Ç¤¹¡£¤³¤ì¤ËÂФ·¤Æ¡¢¾ðÊó¤ò¼õ¤±¼è¤ë¦¤Ç¤¢¤ë ShotBullet ¥á¥½¥Ã¥É¤Ë¤â¾ðÊó¤ò¼õ¤±¼è¤ë¤¿¤á¤Î°ú¿ô¤ò¡¢Æ±¤¸·¿¤ÇÍÑ°Õ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

¡¡Êý¸þ¤Î¾ðÊó¤Ï Vector3 ·¿¤Ç¤¹¤Î¤Ç¡¢ShotBullet ¥á¥½¥Ã¥É¤Î°ú¿ô¤Ë¤â Vector3 ·¿¤ÎÊÑ¿ô¤òÀë¸À¤·¤ÆÄɲä·¤Þ¤¹¡£
°ú¿ô¤ËÊÑ¿ô¤òÀë¸À¤¹¤ë¾ì¹ç¤â¡¢·¿¤ÈÊÑ¿ô̾¤òÊ»µ­¤·¤Þ¤¹¡£ÊÑ¿ô̾¤ÏǤ°Õ¤Ç¤¹¤¬¡¢Êý¸þ¤Î¾ðÊó¤È¤ï¤«¤ë¤è¤¦¤Ë¡¢direction ¤È¤¤¤¦ÊÑ¿ô̾¤È¤·¤Æ¤ª¤­¤Þ¤¹¡£



¡¡°ú¿ô¤È¤·¤Æ¼õ¤±¼è¤Ã¤¿¾ðÊó¤Ï direction ÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢¤³¤Î¾ðÊó¤Ï¡¢ShotBullet ¥á¥½¥Ã¥ÉÆâ¤Ç¤¢¤ì¤Ð¼«Í³¤ËÍøÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
µÕ¤Ë¹Í¤¨¤ë¤È¡¢¤³¤Î¥á¥½¥Ã¥É³°¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¾ðÊó¤Ë¤Ê¤ê¤Þ¤¹¡£ÊÑ¿ô¤Ë¤Ï¥¹¥³¡¼¥×¡ÊÍ­¸úÈϰϡˤȤ¤¤¦¹Í¤¨Êý¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤â¤¦°ìÅÙ¡¢Éü½¬¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£

¡¡¤¤¤Þ¤Þ¤Ç¤Ï¥Ð¥ì¥Ã¥È¤ò°ÜÆ°¤µ¤»¤ëºÝ¤ÎÊý¸þ¤È¤·¤Æ¡¢AddForce ¥á¥½¥Ã¥É¤Ë transform.up ÊÑ¿ô¤òÍøÍѤ·¤Æ¤¤¤Þ¤·¤¿¡£
¤½¤Î¤¿¤á¡¢¾ï¤Ë Y¼´¤Î¾åÊý¸þ¤Ë¸þ¤«¤Ã¤Æ¥Ð¥ì¥Ã¥È¤¬°ÜÆ°¤¹¤ë½èÍý¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤·¤¿¡£

¡¡¤³¤ÎÉôʬ¤ò¡¢°ú¿ô¤È¤·¤Æ¼õ¤±¼è¤Ã¤¿ direction ÊÑ¿ô¤Î¾ðÊó¤ËÊѹ¹¤·¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢¥¿¥Ã¥×¤·¤¿Êý¸þ¤ÎÃͤǤ¹¡£
¤³¤¦¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢PlayerController ¥¹¥¯¥ê¥×¥È¤Ç·×»»¤·¤¿¡ÖÊý¸þ¡×¤Î¾ðÊó¤ò¥Ð¥ì¥Ã¥È¤Ë¤â¤ª¤¤¤Æ¤âÍøÍѤ·¡¢¥²¡¼¥à½èÍý¤ÎÆâÍƤËÈ¿±Ç¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤³¤³¤Þ¤Ç¤Î½èÍý¤ò Bullet ¥¹¥¯¥ê¥×¥È¤Î ShotBullet ¥á¥½¥Ã¥É¤ò½¤Àµ¤¹¤ë¤³¤È¤Ç¼ÂÁõ¤·¤Þ¤¹¡£


£²¡¥Bullet ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤Æ¡¢ShotBullet ¥á¥½¥Ã¥É¤Ë°ú¿ô¤òÄɲä·¡¢Êý¸þ¤Î¾ðÊó¤ò¼õ¤±¼è¤Ã¤Æ¥á¥½¥Ã¥ÉÆâ¤ÇÍøÍѤǤ­¤ë¤è¤¦¤Ë¤¹¤ë


¡¡À߷פÎÆâÍƤò¤Õ¤Þ¤¨¤Æ¡¢Bullet ¥¹¥¯¥ê¥×¥È¤Î½èÍý¤ò½¤Àµ¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£

Bullet.cs

¡¡<=¡¡¥¯¥ê¥Ã¥¯¤·¤¿¤é³«¤­¤Þ¤¹


¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Æ¤ª¤­¤Þ¤¹¡£
¼¡¤Ë¡¢PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢ShotBullet ¥á¥½¥Ã¥É¤ËÊý¸þ¤Î¾ðÊó¤òÅϤ¹¤è¤¦¤Ë½èÍý¤ò½¤Àµ¤·¤Þ¤¹¡£


£³¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤ÎÀß·×


¡¡Bullet ¥¹¥¯¥ê¥×¥È¤Î½¤Àµ¤¬½ªÎ»¤·¤¿¤é¡¢ShotBullet ¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë PlayerController ¥¹¥¯¥ê¥×¥È¦¤Î½¤Àµ¤ò¹Ô¤¤¤Þ¤¹¡£

¡¡ShotBullet ¥á¥½¥Ã¥É¤Ë°ú¿ô¤òÄɲä·¤¿¤³¤È¤Ë¤è¤Ã¤Æ¡¢¤³¤Î¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤ëºÝ¤Ë¤Ï Vector3 ·¿¤Î¾ðÊó¤ò°·¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
¤Ç¤¹¤¬¡¢´Î¿´¤ÎÃͤ¬¤³¤Î Vector3 ·¿¤ÎÊÑ¿ô¤ËÆϤ¤¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤ËÍøÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¡£

¡¡ShotBullet ¥á¥½¥Ã¥É¤ËɬÍפʾðÊó¤Ï PlayerController ¥¹¥¯¥ê¥×¥È¤Ç·×»»¤·¤Æµá¤á¤Æ¤¤¤ë¡ÖÊý¸þ(direction ÊÑ¿ô)¡×¤Î¾ðÊó¤Ç¤¹¡£
¤³¤ÎÃͤ¬ Vector3 ·¿¤Ç¤¹¤Î¤Ç¡¢ShotBullet ¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë¡¢¤³¤Î direction ÊÑ¿ô¤ò»ØÄꤷ¤ÆÅϤ·¤Æ¤¢¤²¤ë¤è¤¦¤Ë¤¹¤ì¤Ð¡¢
ShotBullet ¥á¥½¥Ã¥É¤Ç¤â¡¢¤³¤ÎÊý¸þ¤Î¾ðÊó¤òÍøÍѤ·¤Æ½èÍý¤ò¼Â¹Ô½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£


£´¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢Bullet ¥¹¥¯¥ê¥×¥È¤Î ShotBullet ¥á¥½¥Ã¥É¤ËÊý¸þ¤Î¾ðÊó¤òÅÁ㤹¤ë½èÍý¤òÄɲ乤ë


¡¡À߷פÎÆâÍƤò¤Õ¤Þ¤¨¤Æ¡¢PlayerController ¥¹¥¯¥ê¥×¥È¤Î½èÍý¤ò½¤Àµ¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£

PlayerController.cs

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



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


¡¡¥¹¥¯¥ê¥×¥È¤Î½¤Àµ¤¬ºÑ¤ß¤Þ¤·¤¿¤Î¤Ç¡¢¥²¡¼¥à¤ò¼Â¹Ô¤·¤Æ Game ¥Ó¥å¡¼¤òº¸¥¯¥ê¥Ã¥¯¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
PlayerController ¥¹¥¯¥ê¥×¥È¤Ç·×»»¤·¤¿Êý¸þ¤Î¾ðÊó¤¬ Bullet ¥¹¥¯¥ê¥×¥È¤Î ShotBullet ¥á¥½¥Ã¥É¤ËÅÁ¤ï¤Ã¤Æ¤¤¤ì¤Ð¡¢
¤¤¤Þ¤Þ¤Ç¤È°Û¤Ê¤ê¡¢¥­¥ã¥é¤Î°ÌÃÖ¤«¤é¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃÖ¤ÎÊý¸þ¤Ë¸þ¤«¤Ã¤Æ¥Ð¥ì¥Ã¥È¤¬°ÜÆ°¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£


¡ã¼Â¹ÔÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯


¡¡¤â¤·¤â¤Þ¤À¾åÊý¸þ¤Ë¤·¤«¥Ð¥ì¥Ã¥È¤¬°ÜÆ°¤·¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢Bullet ¥¹¥¯¥ê¥×¥È¤Î ShotBullet ¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤ò¸«Ä¾¤·¤Þ¤¹¡£
°ú¿ô¤ÇÆϤ¤¤Æ¤ë direction ÊÑ¿ô¤Î¾ðÊó¤ò¤·¤Ã¤«¤ê¤È AddForce ¥á¥½¥Ã¥É¤Ë¤Æ³èÍѤ·¤Æ¤¤¤ë¤«¡¢³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£


¡¡Æ±»þ¤ËÌäÂêÅÀ¤â¸«¤¨¤Æ¤­¤¿¤È»×¤¤¤Þ¤¹¡£
¥­¥ã¥é¤È¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃ֤ε÷Î¥¤Ë¤è¤Ã¤Æ¡¢¥Ð¥ì¥Ã¥È¤Î°Üư®ÅÙ¤¬ÊѲ½¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡
¡¡ºÇ¸å¤Ë¡¢¤³¤Î¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃÖ¤è¤ë®Å٤κ¹¤ò¤Ê¤¯¤¹À©¸æ½èÍý¤ò¼ÂÁõ¤·¤Þ¤·¤ç¤¦¡£


£±£·¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢Êý¸þ¤Î¾ðÊó¤òÀµµ¬²½½èÍý¤·¤Æ¡¢²èÌ̤ò¥¿¥Ã¥×¤·¤¿°ÌÃ֤ˤè¤ë®ÅÙº¹¤ò½¤Àµ¤¹¤ë

£±¡¥Àß·×


¡¡¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃ֤ˤè¤Ã¤Æ¥Ð¥ì¥Ã¥È¤Î®ÅÙ¤¬ÊѲ½¤·¤Æ¤·¤Þ¤¦¸¶°ø¤Ï¡¢Êý¸þ¤È¤·¤Æ·×»»¤·¤¿ÃͤËÀßÄꤵ¤ì¤Æ¤¤¤ë¥Þ¥°¥Ë¥Á¥å¡¼¥É¤È¤¤¤¦Â®ÅÙ¾ðÊó¤Ë¤¢¤ê¤Þ¤¹¡£
¤³¤Î¥Þ¥°¥Ë¥Á¥å¡¼¥É¤ÎÃͤϡ¢µ÷Î¥¤¬Î¥¤ì¤ë¤Û¤É¤ËÂ礭¤¯¤Ê¤ëÃͤǤ¢¤ë¤¿¤á¡¢¥­¥ã¥é¤Î°ÌÃÖ¤«¤é±ó¤¤°ÌÃ֤ǥ¯¥ê¥Ã¥¯¤¹¤ë¤È¡¢Â®ÅÙ¤â°ì½ï¤ËÂ礭¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¡¡
¡¡²þÁ±¤¹¤ë¤Ë¤Ï¡¢Â®ÅÙ¾ðÊó¤òÀµµ¬²½¤¹¤ë¤³¤È¤ÇÂбþ¤Ç¤­¤Þ¤¹¡£Àµµ¬²½¤È¤Ï¡¢¥Þ¥°¥Ë¥Á¥å¡¼¥É¤ÎÃͤòñ°Ì¥Ù¥¯¥È¥ë¤È¤¤¤¦¾ðÊó¤ËÊÑ´¹¤¹¤ë½èÍý¤Î¤³¤È¤Ç¤¹¡£

¡¡Ã±°Ì¥Ù¥¯¥È¥ë¤È¤Ê¤Ã¤¿Ãͤϡ¢Êý¸þ¤Î¾ðÊó¤Ï¤½¤Î¤Þ¤Þ¤Ë¡¢Â®ÅÙ¤ÎÃͤò°ìÄêÃÍ(0 ¤« 1)¤ËÅý°ì¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢
¥­¥ã¥é¤«¤é±ó¤¤°ÌÃÖ¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤â¡¢¶á¤¤°ÌÃÖ¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤â¡¢¾ï¤ËƱ¤¸Â®ÅÙ¤òÊݤĤ³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤Þ¤¿¤³¤Î½èÍý¤ò¹Ô¤¦Á°¤Ë¤Ï¡¢Êý¸þ¤Î¾ðÊ󤫤é ZÀ®Ê¬¤Î¾ðÊó¤ò½üµî(0)¤Ë¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£¤½¤¦¤·¤Ê¤¤¤ÈÀµ³Î¤Êñ°Ì¥Ù¥¯¥È¥ë¤¬ºîÀ®¤µ¤ì¤Þ¤»¤ó¡£
¤½¤Î¤¿¤á¡¢¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃ֤˸þ¤«¤Ã¤ÆƱ¤¸Â®Å٤ǥХì¥Ã¥È¤ò°ÜÆ°¤µ¤»¤ë¤Ë¤Ï¡¢Êý¸þ¤Î·×»»¤Î¤¢¤È¤Ë¡¢Z¼´¤Î¾ðÊó¤ò 0 ¤Ë¤·¡¢¤½¤Î¸å¡¢Àµµ¬²½¤Î½èÍý¤ò²Ã¤¨¤ë¤³¤È¤¬É¬Íפˤʤê¤Þ¤¹¡£


£²¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃ֤ˤè¤ë®Å٤κ¹¤ò½¤Àµ¤·¤Æ°ìÄê®Å٤ˤ¹¤ë½èÍý¤òÄɲ乤ë


¡¡À߷פò¸µ¤Ë¡¢ÆüËܸì¤Ç¥³¥á¥ó¥È¤ò½ñ¤¤¤Æ¤«¤é¡¢½èÍý¤Î¼ÂÁõ¤ò¹Ô¤¤¤Þ¤¹¡£

¡¡¥×¥í¥°¥é¥à¤Ï¾å¤«¤é²¼¤Ë½èÍý¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤­¤Þ¤¹¤Î¤Ç¡¢½èÍý¤ò½ñ¤¯½çÈÖ¤¬ÂçÀڤˤʤê¤Þ¤¹¡£

¡¡Êý¸þ¤Î·×»»¡¡¢ª¡¡ZÀ®Ê¬¤Î½üµî(direction,z ¤ò 0 ¤Ë¤¹¤ë)¡¡¢ª¡¡Àµµ¬²½

¡¡¤³¤Î½çÈ֤ǽèÍý¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢Êý¸þ¤ÎÃͤ¬Àµµ¬²½¤µ¤ì¤Þ¤¹¡£

¡¡¤É¤Î¤è¤¦¤Ë¡¢ZÀ®Ê¬¤Î½üµî¤äÀµµ¬²½½èÍý¤ò¹Ô¤¦¤«¡¢¤Ç¤¹¤¬¡¢ZÀ®Ê¬¤Î½üµî¤¹¤ëÊýË¡¤Ï¿§¡¹¤¢¤ê¤Þ¤¹¡£Vector3.Scale ¥á¥½¥Ã¥É¤òÍøÍѤ¹¤ëÊýË¡¤¬¤ï¤«¤ê¤ä¤¹¤¤ÊýË¡¤Ë¤Ê¤ê¤Þ¤¹¡£
¤Þ¤¿Àµµ¬²½½èÍý¤Ï¡¢Unity ¤ÎÍÑ°Õ¤·¤Æ¤¤¤ë Vector3.normalized ÊÑ¿ô¤òÍøÍѤ¹¤ì¤Ð¼Â¹Ô¤Ç¤­¤Þ¤¹¡£Vector3 ·¿¤ÎÉôʬ¤ËÀµµ¬²½¤ò¹Ô¤¤¤¿¤¤ÊÑ¿ô¤ò»ØÄꤷ¤Þ¤¹¡£

¡¡¤É¤Á¤é¤â²¼¤Ë²òÀ⤬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢ÌܤòÄ̤·¤Æ¤«¤é¥¹¥¯¥ê¥×¥È¤Î½¤Àµ¤ËÄ©À路¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

¡¡¼«Ê¬¤¬¼ÂÁõ¤·¤¿¤¤½èÍý¤¬¥¤¥á¡¼¥¸½ÐÍ褿¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤ò¼Â¸½¤¹¤ë¤¿¤á¤Ë¤É¤ó¤Ê½èÍý¤¬¤¢¤ì¤Ð¾å¼ê¤¯¤¤¤¯¤Î¤«¡¢¼«Ê¬¤Ç¤¹¤Ù¤Æ½èÍý¤ò½ñ¤¯É¬Íפ¬¤¢¤ë¤Î¤«¡¢
¤¢¤ë¤¤¤Ï Unity ¤¬ÍÑ°Õ¤·¤Æ¤¤¤ë¾ðÊ󤬤¢¤ë¤Î¤«¡¢¤½¤¦¤¤¤Ã¤¿¤³¤È¤òÄ´¤Ù¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£


PlayerController.cs

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



£³¡¥¡ãVector3.Scale ¥á¥½¥Ã¥É¡ä


¡¡Unity ¤Î Vector3 ¤Î°·¤¨¤ë¾ðÊó¤Î£±¤Ä¤Ç¤¹¡£

¡¡Âè1°ú¿ô¤Î³ÆÀ®Ê¬¤È¡¢Âè2°ú¿ô¤ÎƱ¤¸À®Ê¬¤ò¾è»»¤·¤¿·ë²Ì¤ò¡¢Ìá¤êÃͤȤ·¤Æ Vector3 ·¿¤Ç¼èÆÀ¤·¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢·×»»·ë²Ì¤òÂåÆþ¤¹¤ë Vector3 ·¿¤ÎÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£

direction = Vector3.Scale(direction, new Vector3(1, 1, 0))

¡¡¾åµ­¤Î¾ì¹ç¡¢(direction.x * 1, direction.y * 1, direction.z * 0)¡¡¤È¤¤¤¦·×»»¤¬¹Ô¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
Z ¼´¤Î¤ß¾ï¤Ë 0 ¤ÎÃͤ¬¾è»»¤µ¤ì¤ë¤¿¤á¡¢½èÍý¤Î·ë²Ì¤È¤·¤Æ¡¢direcion ¤ÎÃͤϡ¢X ¤È Y ¤Î¾ðÊó¤Ï¤½¤Î¤Þ¤Þ¡¢Z ¤Ï 0 ¤È¤¤¤¦·ë²Ì¤¬Ìá¤êÃͤȤ·¤ÆÆÀ¤é¤ì¤Æ¡¢
¸µ¤Î direction ¤ÎÃͤò¾å½ñ¤­¤·¤ÆÂåÆþ¤µ¤ì¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢direction ¤ÎÃͤ«¤é Z À®Ê¬¤Î¤ß½üµî¤·¡¢0 ¤Ë¤¹¤ë¤³¤È¤¬½ÐÍè¤Æ¤¤¤Þ¤¹¡£


»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Vector3.Scale
https://docs.unity3d.com/ja/current/ScriptReferenc...


£´¡¥¡ãVector3.normalized ÊÑ¿ô¤òÍøÍѤ·¤¿Àµµ¬²½½èÍý¡ä

¡¡
¡¡Àµµ¬²½½èÍý¤Ç¤¹¡£magnitude(¥Þ¥°¥Ë¥Á¥å¡¼¥É¡£Ä¹¤µ)¤ò£±¤È¤·¤¿¥Ù¥¯¥È¥ë(ñ°Ì¥Ù¥¯¥È¥ë)¤òÊÖ¤·¤Þ¤¹¡£Ìá¤êÃÍ¤Ï Vector3 ·¿¤Ë¤Ê¤ê¤Þ¤¹¡£

  // Àµµ¬²½½èÍý¤ò¹Ô¤¤¡¢Ã±°Ì¥Ù¥¯¥È¥ë¤È¤¹¤ë(Êý¸þ¤Î¾ðÊó¤Ï»ý¤Á¤Ä¤Ä¡¢µ÷Î¥¤Ë¤è¤ë®ÅÙº¹¤ò¤Ê¤¯¤·¤Æ°ìÄêÃͤˤ¹¤ë)
  direction = direction.normalized;

¡¡¸½ºß¤Î¥Ù¥¯¥È¥ë¤ÎÊý¸þ¤ò°Ý»ý¤·¤¿¤Þ¤Þ¡¢magnitude¤¬£±¡¢¤¢¤ë¤¤¤Ï£°¤Îñ°Ì¥Ù¥¯¥È¥ë¤òºîÀ®¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¡Ê¥Ù¥¯¥È¥ë¤ÎÃͤ¬¾®¤µ¤¤¤È£°¤Ë¤Ê¤ê¤Þ¤¹¡£¡Ë

¡¡¤³¤Î½èÍý¤ò¹Ô¤ï¤Ê¤¤¤È¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃ֤ؤΠmagnitude ¤¬¤½¤Î¤Þ¤Þ°Ý»ý¤µ¤ì¤Æ¤·¤Þ¤¦¤¿¤á¡¢
AÃÏÅÀ(¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃÖ)¤ÈBÃÏÅÀ(»ÏÅÀ)¤Îµ÷Î¥¤¬Î¥¤ì¤Æ¤¤¤ëÄø¡¢Â®ÅÙ¤¬Â®¤¯¤Ê¤ê¡¢¶á¤¤¤Û¤É®ÅÙ¤¬ÃÙ¤¯¤Ê¤ê¤Þ¤¹¡£
º£²ó¤Î¾ì¹ç¤Ï¡¢¥Ð¥ì¥Ã¥È¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î®ÅÙ¤¬µ÷Î¥¤Ë¤è¤Ã¤ÆÊѲ½¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£

¡¡¤³¤ÎÀµµ¬²½¤ò¹Ô¤¦¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃ֤αó¶á¤Ë´Ø¤ï¤é¤º¡¢magnitude ¤¬¤¹¤Ù¤Æ 1¡¢¤¢¤ë¤¤¤Ï 0 ¤ËÅý°ì¤µ¤ì¤¿Ã±°Ì¥Ù¥¯¥È¥ë¤ÎÃͤȤʤ뤿¤á¡¢
Êý¸þ¤Ï¤½¤Î¤Þ¤Þ¤Ç¡¢ÂǤÁ½Ð¤¹ÎϤΤߤò°ìÄêÃͤËÅý°ì¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¡¦¥ê¥Õ¥¡¥ì¥ó¥¹
https://docs.unity3d.com/ja/current/ScriptReferenc...
TechProjinÍÍ
Unity¤ÎVector3¤Ç¤è¤¯»È¤¦¤â¤Î¤Þ¤È¤á
https://tech.pjin.jp/blog/2016/02/16/unity_vector3...


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


¡¡º£²ó¤Î¼ÂÁõ¤Ë¤è¤ê¡¢Êý¸þ¤Î¾ðÊ󤫤éÉÔÍ×¤Ê Z¼´¤Î¾ðÊó¤ò¤Ê¤¯¤·¤ÆÀµµ¬²½¤ò¹Ô¤¦¤³¤È¤Ë¤è¤Ã¤Æ¡¢
¥¯¥ê¥Ã¥¯¤·¤¿°ÌÃ֤ȥ­¥ã¥é¤Î°ÌÃ֤Ȥε÷Î¥¤Ë¤«¤«¤ï¤é¤º¡¢Êý¸þ¤Î¾ðÊó¤Î¤ß¤ò·×»»¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£

¡¡¥²¡¼¥à¤ò¼Â¹Ô¤·¤Æ¡¢Àè¤Û¤É¤ÈƱ¤¸¤è¤¦¤Ë Game¥Ó¥å¡¼¤Î¿§¡¹¤Ê°ÌÃÖ¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
Àè¤Û¤É¤È¤Ï°Û¤Ê¤ê¡¢¤É¤Î°ÌÃÖ¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤â¡¢Æ±¤¸Â®Å٤Ǥ½¤Î¥¯¥ê¥Ã¥¯¤·¤¿Êý¸þ¤Ë¸þ¤«¤Ã¤Æ¥Ð¥ì¥Ã¥È¤¬°ÜÆ°¤¹¤ë¤è¤¦¤Ë¤Ê¤ì¤ÐÀ©¸æÀ®¸ù¤Ç¤¹¡£


¡ã¼Â¹ÔÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯


¡¡°Ê¾å¤Ç¤¹¤Ù¤Æ´°À®¤Ç¤¹¡£

¡¡¤³¤Î¤è¤¦¤Ë¡¢£±¤Ä¤Î½èÍý¤ò¼ÂÁõ¤¹¤ë¤Ë¤¢¤¿¤Ã¤Æ¤â¡¢Ê£¿ô¤Î¹©Äø¤¬É¬Íפˤʤê¤Þ¤¹¡£¤Þ¤¿¡¢ºÇ½ªÅª¤ÊÌÜɸ¤â¸«¤¨¤Æ¤¤¤Ê¤¤¤È´°À®¤Ç¤­¤Þ¤»¤ó¡£
µÕ¤Ë¸À¤¨¤Ð¡¢£±¤Ä¤º¤Ä½çÈÖ¤ËÁȤßΩ¤Æ¤Æ¤¤¤¯¤³¤È¤¬¤Ç¤­¤ì¤Ð¡¢¥¤¥á¡¼¥¸¤·¤Æ¤¤¤ë½èÍý¤ò¼ÂÁõ¤Ç¤­¤ë¤È¤â¸À¤¨¤Þ¤¹¡£

¡¡°ÊÁ°¤Ë¤âÀâÌÀ¤·¤¿¤è¤¦¤Ë¡¢°ìÅ٤ˤ¹¤Ù¤Æ¤Î½èÍý¤ò¼ÂÁõ¤·¤è¤¦¤È¤Ï¤»¤º¤Ë¡¢½çÈÖ¤ËÀѤ߽ŤͤƽèÍý¤ò¹½ÃÛ¤·¤Æ¤¤¤¯¤³¤È¤¬ÂçÀڤǤ¹¡£
¤½¤¦¤¹¤ë¤³¤È¤¬¤Ç¤­¤ì¤Ð¡¢¼ê½ç¤ò¸«Ä¾¤¹¤³¤È¤â½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¼«Ê¬¤Ç½¤Àµ¤·¤¿¤ê¡¢Äɲ乤뤳¤È¤â²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¥í¥¸¥Ã¥¯¤ÎÁȤßÊý¡¢¹Í¤¨Êý¤ò·Ñ³¤·¤Æ³Ø½¬¤·¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£


£¶¡¥¡ã±þÍÑ¡ä


¡¡Êý¸þ¤Î·×»»¼°¤Ï¸½ºß£³¤Ä¤Î½èÍý¤ò½çÈ֤˹ԤäƽèÍý¤òÀ©¸æ¤·¤Æ¤¤¤Þ¤¹¤¬¡¢C#¤Ç¤Ï¤³¤ì¤ò£±¹Ô¤Ë¤Þ¤È¤á¤Æµ­½Ò¤¹¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£

¡ã¸½ºß¤Î½ñ¼°¡ä
  // Êý¸þ¤ò·×»»
  Vector3 direction = tapPos - transform.position;

  // Êý¸þ¤Î¾ðÊ󤫤顢ÉÔÍ×¤Ê ZÀ®Ê¬(Z¼´¾ðÊó) ¤Î½üµî¤ò¹Ô¤¦
  direction = Vector3.Scale(direction, new Vector3(1, 1, 0));

  // Àµµ¬²½½èÍý¤ò¹Ô¤¤¡¢Ã±°Ì¥Ù¥¯¥È¥ë¤È¤¹¤ë(Êý¸þ¤Î¾ðÊó¤Ï»ý¤Á¤Ä¤Ä¡¢µ÷Î¥¤Ë¤è¤ë®ÅÙº¹¤ò¤Ê¤¯¤·¤Æ°ìÄêÃͤˤ¹¤ë)
  direction = direction.normalized;

¡¡¤³¤ì¤Ï¡¢¼¡¤Î¼°¤Çµ­½Ò¤Ç¤­¤Þ¤¹¡£

¡ã£±¹Ô¤Ç¤Þ¤È¤á¤Æµ­½Ò¤¹¤ë½ñ¼°¡ä
  // Êý¸þ¤ò·×»»(Êý¸þ¤Î¾ðÊ󤫤顢ÉÔÍ×¤Ê ZÀ®Ê¬(Z¼´¾ðÊó) ¤Î½üµî¤ò¹Ô¤¤¡¢Àµµ¬²½¤¹¤ë)
  Vector3 direction = Vector3.Scale(tapPos - transform.position, new Vector3(1, 1, 0)).normalized;

¡¡¤³¤Î£±¹Ô¤Îµ­½Ò¤Ç¡¢£³¹Ôʬ¤ÈƱ¤¸½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤Î½èÍý¤Ë¤â¥Ô¥ê¥ª¥É¤Î½èÍý¤¬ÍøÍѤµ¤ì¤Æ¤¤¤ë¤Î¤¬Ê¬¤«¤ê¤Þ¤¹¡£

¡¡½èÍý¤òÍý²ò¤·¤ÆÆɤ߲ò¤±¤ë¤è¤¦¤Ë¤Ê¤ë¤È¡¢¿§¡¹¤Êµ­½ÒÊýË¡¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤­¤Þ¤¹¡£¾¯¤·¤º¤Ä´·¤ì¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£



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

¡¡¼¡¤Ï¡¡¼ê½ç£¹¡¡¡Ý¥¨¥Í¥ß¡¼¤ÎºîÀ®¤ÈÀ©¸æ¡Ý¡¡¤Ç¤¹¡£

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


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

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

Menu



´ðÁÃ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private



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

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