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

¡¡¤³¤Î¼ê½ç¤Ç¤Ï¡¢¥²¡¼¥à¤Î¥Ù¡¼¥¹µ¡Ç½Éôʬ¤Ç¤¢¤ë²èÌ̤Υ¿¥Ã¥×½èÍý¤ÎÀ©¸æ¤Ë¤Ä¤¤¤Æ¼ÂÁõ¤ò¹Ô¤¤¤Þ¤¹¡£

¡ã¼ÂÁõÆ°²è¡¡²èÌ̤ò¥¿¥Ã¥×¤·¤¿ºÝ¤ËÇÛÃÖ²Äǽ¤Ê°ÌÃ֤Ǥ¢¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¥¿¥Ã¥×¤·¤¿°ÌÃ֤˥­¥ã¥é¤ò°ÜÆ°¤¹¤ë¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯


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

¼ê½ç£·¡¡¡Ý¥¿¥¤¥ë¤Î¥¿¥Ã¥×´¶ÃÎÀ©¸æ¤Î¼ÂÁõ¡Ý
£±£±¡¥°ÜÆ°²Äǽ¤Ê¥¿¥¤¥ë¤ò¥¿¥Ã¥×¤·¤¿ºÝ¤Ë¥­¥ã¥é¤ò°ÜÆ°¤¹¤ë½èÍý¤ò¼ÂÁõ¤¹¤ë



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

¡¡¡¦Vector3Int ¹½Â¤ÂÎ
¡¡¡¦Camera.ScreenToWorldPoint ¥á¥½¥Ã¥É
¡¡¡¦GridLayout.WorldToCell ¥á¥½¥Ã¥É
¡¡¡¦Tilemap.GetColliderType ¥á¥½¥Ã¥É
¡¡¡¦NavMeshAgent ¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ëÊÑ¿ô¤È¥á¥½¥Ã¥É



£±£±¡¥°ÜÆ°²Äǽ¤Ê¥¿¥¤¥ë¤ò¥¿¥Ã¥×¤·¤¿ºÝ¤Ë¥­¥ã¥é¤ò°ÜÆ°¤¹¤ë½èÍý¤ò¼ÂÁõ¤¹¤ë

£±¡¥Àß·×


¡¡Unity ¤Ë¤Ï²èÌ̤Υ¿¥Ã¥×¤ò´¶ÃΤ¹¤ë¤¿¤á¤ÎÀìÍѥ᥽¥Ã¥É¤¬¤¤¤¯¤Ä¤«ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¦¤Á¤Î£±¤Ä¤Ç¤¢¤ë Camera ¥¯¥é¥¹¤Î´ÉÍý¤¹¤ë ScreenToWorldPoint ¥á¥½¥Ã¥É¤Ï²èÌ̤Υ¹¥¯¥ê¡¼¥óºÂɸ¤ò¥ï¡¼¥ë¥ÉºÂɸ¤ËÊÑ´¹¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢
²èÌ̤Υ¿¥Ã¥×¤·¤¿°ÌÃÖ¾ðÊó¤ò¥²¡¼¥àÆâ¤Î°ÌÃÖ¾ðÊó¤Ø¤ÈÊÑ´¹¤·¤Æ¤¯¤ì¤Þ¤¹¤Î¤Ç¡¢¤³¤Á¤é¤òÍøÍѤ·¤Þ¤¹¡£

¡¡º£²óÍøÍѤ¹¤ë¥¿¥¤¥ë¥Þ¥Ã¥×¤Ï¥ï¡¼¥ë¥ÉºÂɸ¤Ç¤Ï¤Ê¤¯¡¢¥¿¥¤¥ë¥Þ¥Ã¥×Æâ¤Î¥»¥ëºÂɸ¤È¤¤¤¦ºÂɸÂηϤˤè¤Ã¤Æ´ÉÍý¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á½¾Íè¤Î²èÌ̤Υ¿¥Ã¥×¤ò´¶ÃΤ¹¤ë¥á¥½¥Ã¥É¤Î¤ß¤Ç¤Ï¡¢¥¿¥¤¥ë¥Þ¥Ã¥×Æâ¤Î¥¿¥¤¥ë¤òÆÃÄꤹ¤ë¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¡£

¡¡¤½¤³¤Ç²èÌ̤Υ¿¥Ã¥×¤ò´¶ÃΤ·¤Æ¥ï¡¼¥ë¥ÉºÂɸ¤ò¼èÆÀ¤·¤¿¤¢¤È¤Ë¡¢¥ï¡¼¥ë¥ÉºÂɸ¤ò¥¿¥¤¥ë¥Þ¥Ã¥×¤Î¥»¥ëºÂɸ¤ËÊÑ´¹¤¹¤ë¥á¥½¥Ã¥É¤òÁȤ߹ç¤ï¤»¤ÆÍøÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢
²èÌ̤Υ¿¥Ã¥×¤·¤¿°ÌÃÖ¤ò¥¿¥¤¥ë¥Þ¥Ã¥×Æâ¤Î£±¤Ä¤Î¥¿¥¤¥ë¤ÎÃÏÅÀ¤Èɳ¤Å¤±¤ò¤·¤ÆºÂɸ¤ò»ØÄê¤Ç¤­¤ë¤è¤¦¤Ë½èÍý¤ò¹Í¤¨¤Þ¤¹¡£

¡¡¥»¥ë¤ÎºÂɸ¤¬¤ï¤«¤ì¤Ð¡¢¤½¤ÎÃÏÅÀ¤ËÂФ·¤Æ NavMeshAgent ¤ÎÌÜɸÃÏÅÀ¤È¤·¤ÆÀßÄꤹ¤ë¤³¤È¤Ç¡¢
¥¿¥¤¥ë¥Þ¥Ã¥×¾å¤Ë¤¤¤ë¥­¥ã¥é¤ò NavMeshAgent ¤Îµ¡Ç½¤ò»È¤¤¡¢°ÜÆ°ÉԲĤΥ¿¥¤¥ë¤ò²óÈò¤·¤Ê¤¬¤é¡¢ÌÜŪÃϤޤǰÜÆ°¤µ¤»¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡
¡¡Unity ¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ëÊ£¿ô¤Î¥á¥½¥Ã¥É¤È¤½¤Î¥á¥½¥Ã¥É¤ÎÌá¤êÃͤò¾å¼ê¤Ë³èÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢º£²ó¤Î¥¿¥Ã¥×½èÍý¤¬¼ÂÁõ¤Ç¤­¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
º£¸å¤â¤³¤Î¤è¤¦¤ËÊ£¹ç¼°¤Ê¥í¥¸¥Ã¥¯¤ä¹Í¤¨Êý¤¬É¬Íפˤʤê¤Þ¤¹¤Î¤Ç¡¢¤·¤Ã¤«¤ê¤È³Ø½¬¤·¤Æ³è¤«¤·¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£


£²¡¥MoveToClickTileMapPoint ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë


¡¡²èÌ̤Υ¿¥Ã¥×(¥Þ¥¦¥¹¥¯¥ê¥Ã¥¯)¤ò´¶ÃΤ·¡¢¤½¤ÎÃÏÅÀ¤Ë¥­¥ã¥é¤ò°ÜÆ°¤µ¤»¤ë¤¿¤á¤Î¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Þ¤¹¡£
¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ëÁ°¤Ë¤Ï¥¹¥¯¥ê¥×¥ÈÀìÍѤΥե©¥ë¥À¤òÍÑ°Õ¤·¡¢¤½¤ÎÃæ¤ÇºîÀ®¤¹¤ë¤è¤¦¤Ë¤·¤Æ¥Õ¥¡¥¤¥ë´ÉÍý¤ò¤·¤ä¤¹¤¯¤·¤Þ¤¹¡£

¡¡Project ¥Õ¥©¥ë¥À¤Î¶õ¤¤¤Æ¤¤¤ë¾ì½ê¤Ç±¦¥¯¥ê¥Ã¥¯¡¢¤¢¤ë¤¤¤Ï + ¥Ü¥¿¥ó¤ò²¡¤·¤Æ¥á¥Ë¥å¡¼¤ò³«¤­¡¢Create => Folder ¤òÁªÂò¤·¤Þ¤¹¡£
̾Á°¤ò Scripts ¤ËÊѹ¹¤·¤Þ¤¹¡£¤³¤Î¥Õ¥©¥ë¥ÀÆâ¤ÇƱ¤¸¤è¤¦¤ËºÆÅÙ¥á¥Ë¥å¡¼¤ò³«¤­¡¢Create => C# Script ¤òÁªÂò¤·¤Þ¤¹¡£

¡¡¿·¤·¤¯¥¹¥¯¥ê¥×¥È¡¦¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢Ì¾Á°¤ò MoveToClickTileMapPoint ¤ËÊѹ¹¤·¤Þ¤¹¡£
¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤¹¤ë¤³¤È¤Ç Visual Studio ¥¨¥Ç¥£¥¿¡¼¤¬µ¯Æ°¤·¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤Ë¥¹¥¯¥ê¥×¥È¤òµ­½Ò¤·¤Æ¤¤¤­¤Þ¤¹¡£
¡¡

MoveToClickTileMapPoint.cs

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


¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤ò¹Ô¤¤¤Þ¤¹¡£¥»¡¼¥Ö¤Ï Ctrl + Shift + S ¥­¡¼¤Ç¤¹¡£


£³¡¥¡ãVector3Int ¹½Â¤ÂΡä


¡¡Vector3 ¹½Â¤ÂΤò int ·¿¤Çɽ¸½¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£Ä̾ï¤Î Vector3 ·¿¤È¤Î°ã¤¤¤Ï³Æ¹àÌܤ¬ float ·¿¤Ç¤Ï¤Ê¤¯¡¢¤¹¤Ù¤Æ int ·¿¤Ç´ÉÍý¤µ¤ì¤Æ¤¤¤ëÉôʬ¤Ç¤¹¡£

¡¡º£²ó¤Î¥¿¥¤¥ë¥Þ¥Ã¥×¤Ç¤ÏºÂɸ¾ðÊ󤬥¥ë¥ÉºÂɸ¤Ç¤Ï¤Ê¤¯¡¢¥»¥ëºÂɸ¤È¤¤¤¦ÂηϤǴÉÍý¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ï (3, 4) ¤ä(110, 44) ¤Î¤è¤¦¤Ë¡¢¤¹¤Ù¤ÆÀ°¿ô¤Î Vector3Int ¹½Â¤ÂΤǺÂɸ¤¬É½¸½¤µ¤ì¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¥»¥ëºÂɸ¤Î¾ðÊó¤ò¥¹¥¯¥ê¥×¥ÈÆâ¤Ç°·¤¦¾ì¹ç¤Ë¤â Vector3Int ¹½Â¤ÂΤξðÊó¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢¥»¥ëºÂɸ¤ò¼èÆÀ¤·¤¿¤ê¡¢ÍøÍѤ·¤¿¤ê¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡Ä̾ï¤Î¥ï¡¼¥ë¥ÉºÂɸ¤Ï Vector3 ¹½Â¤ÂÎ(float ·¿)¡¢¥»¥ëºÂɸ¤Ï Vector3Int ¹½Â¤ÂÎ(int ·¿)¤È¤¤¤¦É÷¤Ë¡¢ºÂɸ¤Î´ÉÍý¤·¤Æ¤¤¤ë·¿¤ò³Ð¤¨¤Æ¤·¤Þ¤¦¤È¤¤¤¤¤Ç¤·¤ç¤¦¡£

Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Vector3Int
https://docs.unity3d.com/ja/current/ScriptReferenc...


£´¡¥¡ãCamera.ScreenToWorldPoint ¥á¥½¥Ã¥É¡ä


¡¡°ú¿ô¤Ç»ØÄꤷ¤¿¥¹¥¯¥ê¡¼¥óºÂɸ¤Î¾ðÊó¤ò¥ï¡¼¥ë¥ÉºÂɸ¤ËÊÑ´¹¤¹¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£

  // ¥¿¥Ã¥×(¥Þ¥¦¥¹¥¯¥ê¥Ã¥¯)¤Î°ÌÃÖ¤ò¼èÆÀ¤·¤Æ¥ï¡¼¥ë¥ÉºÂɸ¤ËÊÑ´¹
  Camera.main.ScreenToWorldPoint(Input.mousePosition);

¡¡¥¿¥Ã¥×¤·¤¿°ÌÃÖ¡¢¤¢¤ë¤¤¤Ï¥Þ¥¦¥¹¤Î¥Ý¥¤¥ó¥¿¤¬¤¢¤ë¥¹¥¯¥ê¡¼¥óºÂɸ¤Î¾ðÊó(Input.mousePosition ÊÑ¿ô)¤ò°ú¿ô¤Ë»ØÄꤷ¡¢
¤½¤ÎÃͤòÌá¤êÃͤȤ·¤Æ Vector3 ¹½Â¤ÂΤΥ¥ë¥ÉºÂɸ¤ËÊÑ´¹¤·¤Æ¤¤¤Þ¤¹¡£

¡¡º£²ó¤Ï¤³¤ÎÃͤò WorldToCell ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ¡¢¤µ¤é¤Ë¥¿¥¤¥ë¥Þ¥Ã¥×¤Î¥»¥ëºÂɸ¤ËÊÑ´¹¤·¤Æ¤¤¤Þ¤¹¡£

¡¡¤³¤Î¥á¥½¥Ã¥É¤Ï£²£Ä¤Ç¤ÏÌäÂê¤Ê¤¯Æ°ºî¤·¤Þ¤¹¤¬¡¢£³£Ä¤Î¾ì¹ç¤Ë¤Ï Z ¼´¤Î¾ðÊó¤ò¹Íθ¤·¤Ê¤¤¤ÈÀµ³Î¤Ê·×»»¤ò¹Ô¤Ã¤Æ¤¯¤ì¤Þ¤»¤ó¡£
¥¹¥¯¥ê¡¼¥óºÂɸ¤Ï£²¼¡¸µ(Vector2 ¹½Â¤ÂÎ)¤Ç¤¢¤ë¤¿¤á¡¢Vector3 ¹½Â¤ÂΤÎÃͤËÊÑ´¹¤·¤¿ºÝ¡¢Z ¼´¤Ë¤Ï¾ï¤Ë 0 ¤Ë¤Ê¤ë¤¿¤á¤Ç¤¹¡£
¤³¤¦¤¤¤Ã¤¿¥±¡¼¥¹¤Î¾ì¹ç¤Ë¤Ï¡¢ Z ¼´¤ËŬÀÚ¤ÊÃͤòÂåÆþ¤·¤ÆÍøÍѤ·¤Þ¤¹¡£
¤Þ¤¿¥«¥á¥é¤Î Projection ¤ÎÀßÄ꤬£²£Ä¤Î¾ì¹ç¤Ë¤Ï¼«Æ°Åª¤Ë Orthographic ¤Ë¤Ê¤ë¤Î¤ËÂФ·¡¢£³£Ä¤Î¾ì¹ç¤Ë¤Ï Perspective ¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤ÎÊÕ¤ê¤Ë¤âÃí°Õ¤¬É¬Íפˤʤê¤Þ¤¹¡£

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


£µ¡¥¡ãGridLayout.WorldToCell ¥á¥½¥Ã¥É¡ä


¡¡°ú¿ô¤Ë»ØÄꤷ¤¿¥ï¡¼¥ë¥ÉºÂɸ(Vector3 ·¿)¤ò¡¢¥¿¥¤¥ë¥Þ¥Ã¥×Æâ¤ÎºÂɸñ°Ì¤Ç¤¢¤ë¥»¥ëºÂɸ(Vector3Int ·¿) ¤ËÊÑ´¹¤¹¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£

  // ¥¿¥Ã¥×(¥Þ¥¦¥¹¥¯¥ê¥Ã¥¯)¤Î°ÌÃÖ¤ò¼èÆÀ¤·¤Æ¥ï¡¼¥ë¥ÉºÂɸ¤ËÊÑ´¹¤·¡¢¤½¤ì¤ò¤µ¤é¤Ë¥¿¥¤¥ë¤Î¥»¥ëºÂɸ¤ËÊÑ´¹
  gridPos = grid.WorldToCell(Camera.main.ScreenToWorldPoint(Input.mousePosition));

¡¡º£²ó¤Î¼ÂÁõ¤Ç¤Ï¡¢ScreenToWorldPoint ¥á¥½¥Ã¥É¤ÎÌá¤êÃͤȤ·¤Æ Vector3 ¹½Â¤ÂΤξðÊó¤ò¼èÆÀ¤·¤Æ¡¢¤½¤ì¤ò¥ï¡¼¥ë¥ÉºÂɸ¤ÎÃͤȤ·¤Æ°ú¿ô¤Ë»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£
WorldToCell ¥á¥½¥Ã¥É£è¤Ç¤Ï¤½¤Î°ú¿ô¤Î°ÌÃ֤ηë²Ì¤ò¥¿¥¤¥ë¥Þ¥Ã¥×Æâ¤Ë¤¢¤ë¥»¥ëºÂɸ¤È¤·¤Æ Vector3Int ¹½Â¤ÂΤξðÊó¤È¤·¤ÆÊÑ´¹¤·¤Æ¼èÆÀ¤·¤Æ¤¤¤Þ¤¹¡£

¡¡¤³¤Î¤è¤¦¤ËºÂɸ¤Î¾ðÊó¤òÊÑ´¹¤·¤Æ¤¤¤¯¤³¤È¤Ë¤è¤Ã¤Æ¡¢²èÌ̤Υ¿¥Ã¥×¤Î°ÌÃÖ¾ðÊó¤ò¥¿¥¤¥ë¥Þ¥Ã¥×Æâ¤Î¥¿¥¤¥ë¤Î°ÌÃÖ¾ðÊó¤Èɳ¤Å¤±¤ÆÍøÍѤ¹¤ë½èÍý¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Grid
https://docs.unity3d.com/ja/current/ScriptReferenc...
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
GridLayout.WorldToCell
https://docs.unity3d.com/ja/current/ScriptReferenc...


£¶¡¥Chara ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë MoveToClickTileMapPoint ¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤ÆÀßÄê¤ò¤¹¤ë


¡¡¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤¢¤ë Chara ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥×¥ì¥Õ¥¡¥Ö¤òÁªÂò¤·¤Þ¤¹¡£

¡¡ºÇ½é¤Ë¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Î°ìÈÖ²¼¤Ë¤¢¤ë Add Component ¥Ü¥¿¥ó¤ò²¡¤·¤Æ¡¢NavMeshAgent ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÄɲ䷤Ƥ¯¤À¤µ¤¤¡£
¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¥¹¥¤¥Ã¥Á¤Ï¥ª¥Õ¤Ë¤·¤Æ¤ª¤­¤Þ¤¹¡£¤½¤Î¤Û¤«¤ÎÀßÄê¤Ï½é´üÃͤÇÌäÂꤢ¤ê¤Þ¤»¤ó¡£
¡¡
¡¡¼¡¤Ë MoveToClickTileMapPoint ¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥¿¥Ã¥Á¤·¤Æ¤¯¤À¤µ¤¤¡£
¥¢¥¿¥Ã¥Á¤·¤¿¤éɬ¤º¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¤Æ¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò³Îǧ¤·¤Æ¡¢Àµ¾ï¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤«¤òÌÜ»ë¤Ç¥Á¥§¥Ã¥¯¤·¤Þ¤¹¡£

¡¡MoveToClickTileMapPoint ¥¹¥¯¥ê¥×¥È¤Ë¤Ï¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤è¤ê¥¢¥µ¥¤¥ó¤¹¤ë¾ðÊ󤬣²¤Äɽ¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤³¤Á¤é¤òÀßÄꤷ¤Þ¤¹¡£

¡¡grid ÊÑ¿ô¤Ë¤Ï¡¢¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤¢¤ë Grid_DontMove_Base ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Þ¤¹¡£

¡¡tilemap ÊÑ¿ô¤Ë¤Ï Grid_DontMove_Base ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î»Ò¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ë Tilemap ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Þ¤¹¡£


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



¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤¢¤ë¥×¥ì¥Õ¥¡¥Ö¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¹¹¿·¤·¤¿¾ì¹ç¡¢
Prefabs ¥Õ¥©¥ë¥À¤Ë¤¢¤ë Chara ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÊý¤Ë¤Ï¡¢¤½¤ì¤é¤Î¾ðÊó¤Ï¹¹¿·¤µ¤ì¤Þ¤»¤ó¡£

¡¡¤½¤Î¤¿¤á¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Î¾åÉô¤Ë¤¢¤ë Overrides ¥Ü¥¿¥ó¤ò²¡¤·¤Æ¡¢¥×¥ì¥Õ¥¡¥Ö¤Î¾ðÊó¤ò¹¹¿·¤·¤Æ¤ª¤­¤Þ¤¹¡£


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


¡¡¥»¡¼¥Ö¤ò¹Ô¤¤¡¢¥²¡¼¥à¤ò¼Â¹Ô¤·¤Æ½èÍý¤ò³Îǧ¤·¤Þ¤·¤ç¤¦¡£
¤É¤Î¤è¤¦¤Ê½èÍý¤òµ­½Ò¤·¡¢¤É¤Î¤è¤¦¤ÊÀ©¸æ½èÍý¤¬Æ°¤¯¤Î¤«¡¢¥¤¥á¡¼¥¸¤òºî¤Ã¤Æ¤«¤é¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡¤Þ¤ººÇ½é¤Ë¡¢Chara ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Î³Îǧ¤ò¹Ô¤¤¤Þ¤¹¡£
MoveToClickTileMapPoint ¥¹¥¯¥ê¥×¥È¤Î Start ¥á¥½¥Ã¥É¤Î½èÍý¤Ë¤è¤ê¡¢¥ª¥Õ¤Ë¤Ê¤Ã¤Æ¤¤¤ë NavMeshAgent ¤Î¥¹¥¤¥Ã¥Á¤¬¥ª¥ó¤ËÀÚ¤êÂؤï¤ë¤Ï¤º¤Ç¤¹¤Î¤Ç¡¢¤½¤Á¤é¤ò¥Á¥§¥Ã¥¯¤·¤Þ¤¹¡£

¡¡ÌäÂê¤Ê¤¯ NavMeshAgent ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ì¤ÐÀ©¸æÀ®¸ù¤Ç¤¹¡£
¥²¡¼¥à³«»Ï¸å¤Ë NavMeshAgent ¤ò¥ª¥ó¤Ë¤¹¤ëÍýͳ¤Ë¤Ä¤¤¤Æ¤Ï¡¢Ê̤ε¡²ñ¤Ë¾Ü¤·¤¯ÀâÌÀ¤·¤Þ¤¹¡£

¡¡Â³¤¤¤Æ¡¢²èÌ̤ò¥Þ¥¦¥¹¤Ç¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£¤½¤ÎÃÏÅÀ¤Ë¸þ¤«¤Ã¤Æ¡¢Chara ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬°ÜÆ°¤ò³«»Ï¤·¡¢
¥¯¥ê¥Ã¥¯¤·¤¿ÃÏÅÀ¤Ç°ÜÆ°¤òÄä»ß¤¹¤ì¤Ð¡¢NavMeshAgent ¤Ë¤è¤ë¼«Æ°·ÐÏ©°ÜÆ°¤ÎÀ©¸æ¤ÏÀ®¸ù¤Ç¤¹¡£


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


¡¡ºÇ¸å¤Ë NavMeshAgent ¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ³Ø½¬¤·¤Þ¤¹¡£


£¸¡¥¡ãNavMeshAgent ¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ëÊÑ¿ô¤È¥á¥½¥Ã¥É¡ä


¡¡NavMeshAgent ¥¯¥é¥¹¤Ë¤Ï¿¤¯¤ÎÊÑ¿ô¤È¥á¥½¥Ã¥É¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤³¤Îµ¡Ç½¤ò¾å¼ê¤¯³èÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¢AI ¤Ë¤è¤ë NavMeshAgent ¤Î¥ë¡¼¥È¤Î¼«Æ°°ÜÆ°¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¡¡NavMeshAgent ·¿¤ò¥¹¥¯¥ê¥×¥ÈÆâ¤ÇÀë¸À¤·¡¢³ÆÊÑ¿ô¤ä¥á¥½¥Ã¥É¤òÍøÍѤ¹¤ë¤¿¤á¤Ë¤Ï using UnityEngine.AI; ¤ÎÀë¸À¤¬É¬ÍפǤ¹¡£

¡¡º£²ó¤Ï¼ÂÁõ¤ËÍøÍѤ·¤¿µ¡Ç½¤Î¤ß¤òÈ´¿è¤·¤Æ·ÇºÜ¤·¤Æ¤¤¤Þ¤¹¡£
¤¹¤Ù¤Æ¤Îµ¡Ç½¤Ï¾Ò²ð¤Ç¤­¤Þ¤»¤ó¤Î¤Ç¡¢¼«Ê¬¤ÇÄ´¤Ù¤Æ¤ß¤Þ¤·¤ç¤¦¡£


£±¡¥NavMeshAgent.destination ÊÑ¿ô(SetDestination ¥á¥½¥Ã¥É)

¡¡NavMeshAgent ÌÜɸÃÏÅÀ¤òÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë Vector3 ·¿¤ÎÊÑ¿ô¤Ç¤¹¡£
¤³¤Î¾ðÊó¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ç¡¢NavMeshAgent ¤ËÌÜŪÃϤذÜÆ°¤¹¤ë¤³¤È¤òÅÁ¤¨¡¢°ÜÆ°¤ò³«»Ï¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¡¡ÌÜɸÃÏÅÀ¤ÎÀßÄêÊýË¡¤Ë¤Ï¤â¤¦£±¤Ä¡¢SetDestination ¥á¥½¥Ã¥É¤âÍÑ°Õ¤µ¤ì¤Æ¤ª¤ê¡¢¤½¤Á¤é¤Ç¤âƱ¤¸¤è¤¦¤ËÌÜŪÃϤÎÀßÄ꤬²Äǽ¤Ç¤¹¡£

¡¡SetDestination ¥á¥½¥Ã¥É¤Ë¤Ï bool ·¿¤ÎÌá¤êÃͤ¬¤¢¤ê¡¢Àµ¾ï¤ËÌÜŪÃϤÎÀßÄ꤬Í׵ᤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤òɾ²Á¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
ÌÜŪÃϤ¬Àµ¾ï¤ËÍ׵ᤵ¤ì¤Æ¤¤¤ì¤Ð true¡¢Í×µá¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï false ¤¬Ìá¤ê¤Þ¤¹¡£

¡¡ÍÑÅӤ˱þ¤¸¤Æ»È¤¤¤ï¤±¤ë¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£


¡¡// ÌÜŪÃϤι¹¿·
  //agent.SetDestination(nextPos);  // ¤É¤Á¤é¤Î½èÍý¤ÇÀßÄê¤ò¤·¤Æ¤âÌäÂê¤Ê¤·
  
¡¡agent.destination = nextPos;

¡ã»²¹Í¥µ¥¤¥È¡ä
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
NavMeshAgent.destination
https://docs.unity3d.com/jp/current/ScriptReferenc...
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
NavMeshAgent.SetDestination
https://docs.unity3d.com/jp/current/ScriptReferenc...
Unity ¸ø¼°¥Þ¥Ë¥å¥¢¥ë
NavMeshAgent ¤ËÌÜŪÃϤذÜÆ°¤¹¤ë¤³¤È¤òÅÁ¤¨¤ë
https://docs.unity3d.com/ja/current/Manual/nav-Mov...


£²¡¥NavMeshAgent.speed ÊÑ¿ô

¡¡NavMeshAgent ¤Ë¤è¤ë¥ë¡¼¥È°ÜÆ°»þ¤ÎºÇÂç®ÅÙ¤ÎÀßÄêÃͤǤ¹¡£0 ¤Ë¤¹¤ë¤³¤È¤Ç°ÜÆ°¤ÏÄä»ß¤·¤Þ¤¹¡£
NavMeshAgent ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¥¢¥¿¥Ã¥Á¤·¤¿ºÝ¤Î½é´üÃÍ¤Ï 3.5 ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¥²¡¼¥à¤ÎÆâÍƤ˱þ¤¸¤ÆÀßÄê¤ò¹Ô¤¤¤Þ¤¹¡£
º£²ó¤Î¼ÂÁõÎã¤Î¤è¤¦¤Ë¡¢¥¹¥¯¥ê¥×¥È¤«¤éÀ©¸æ¤â²Äǽ¤Ç¤¹¡£

¡¡// °Üư®ÅÙ¤ÎÀßÄê
  agent.speed = 3.0f;

¡ã»²¹Í¥µ¥¤¥È¡ä
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
NavMeshAgent.speed
https://docs.unity3d.com/jp/current/ScriptReferenc...


£³¡¥NavMeshAgent.updateRotation ÊÑ¿ô

¡¡NavMeshAgent ¤Ë¤è¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î²óž¾ðÊó¤ò¹¹¿·¤¹¤ë¤«¤É¤¦¤« bool ·¿¤Ë¤ÆÀßÄꤷ¤Þ¤¹¡£
Ä̾ï¤Ï true ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ï NavMeshAgent ¤Î°ÜÆ°»þ¤Ë²óž¤òµö²Ä¤µ¤ì¤Æ¤ª¤ê¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¸þ¤­¤¬°ÜÆ°¤Ëȼ¤¤¹¹¿·¤µ¤ì¤Þ¤¹¡£
false ¤Ë¤¹¤ë¤È²óž¤Ï¹¹¿·¤µ¤ì¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£

¡¡º£²ó¤Ï 2D ¥²¡¼¥à¤Ç¤¢¤ë¤¿¤á¡¢²óž¤Î¹¹¿·¤ÏÉÔÍפǤ¢¤ê¡¢true ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¸íºîÆ°¤¹¤ë¤¿¤á¡¢false ¤Ë¤·¤Æµ¡Ç½¤ò¥ª¥Õ¤Ë¤·¤Æ¤¤¤Þ¤¹¡£


  // 3D ÍѤÎÀßÄê¤ò¥ª¥Õ¤Ë¤¹¤ë¡£2D ¤Ê¤Î¤Ç¡¢¤³¤Î½èÍý¤¬¤Ê¤¤¤È¡¢ÊѤʰÌÃ֤˾¡¼ê¤Ë°ÜÆ°¤¹¤ë
  agent.updateRotation = false;
  agent.updateUpAxis = false;

¡ã»²¹Í¥µ¥¤¥È¡ä
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
NavMeshAgent.updateRotation
https://docs.unity3d.com/jp/current/ScriptReferenc...


£´¡¥NavMeshAgent.updateUpAxis ÊÑ¿ô

¡¡¥¨¡¼¥¸¥§¥ó¥È(NavMeshAgent ¤Ç°ÜÆ°¤¹¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È)¤¬ NavMeshAgent ¤Ë¤è¤ë¸þ¤­¤Î±Æ¶Á¤ò¼õ¤±¤ë¤«¤É¤¦¤«¤Ë¤Ä¤¤¤Æ¡¢bool ·¿¤Ë¤ÆÀßÄꤷ¤Þ¤¹¡£
Ä̾ï¤Ï true ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ï NavMeshAgent ¤Ë¤è¤ë¸þ¤­(¥í¡¼¥«¥ë¼´¤Î¾åÊý¸þ)¤Î±Æ¶Á¤ò¼õ¤±¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢3D ¶õ´Ö¤Ç¤¢¤ì¤Ð¡¢Bake ¤µ¤ì¤¿¥¨¥ê¥¢¤ËÂФ·¤Æ¡¢NavMeshAgent ¤¬¥¨¡¼¥¸¥§¥ó¥È¤ò¿âľ¤Ë¤Ê¤ë¤è¤¦¤ËΩ¤¿¤»¤è¤¦¤È¤·¤Þ¤¹¡£
false ¤Ë¤¹¤ë¤È¤³¤Î¸þ¤­¤Î±Æ¶Á¤Ï¼õ¤±¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£

¡¡¤³¤Á¤é¤ÎÀßÄê¤â¡¢º£²ó¤Ï 2D ¥²¡¼¥à¤Ç¤¢¤ë¤¿¤á¡¢ÉÔÍפʳµÇ°¤Ë¤Ê¤ê¤Þ¤¹¡£
true ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢3D ¶õ´Ö¤Ç¤Ï¤Ê¤¤¤¿¤á¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¿âľ¤ËΩ¤Æ¤ë¤³¤È¤¬½ÐÍ褺¤Ë¸íºîÆ°¤¹¤ë¤¿¤á¡¢false ¤Ë¤·¤Æµ¡Ç½¤ò¥ª¥Õ¤Ë¤·¤Æ¤¤¤Þ¤¹¡£


  // 3D ÍѤÎÀßÄê¤ò¥ª¥Õ¤Ë¤¹¤ë¡£2D ¤Ê¤Î¤Ç¡¢¤³¤Î½èÍý¤¬¤Ê¤¤¤È¡¢ÊѤʰÌÃ֤˾¡¼ê¤Ë°ÜÆ°¤¹¤ë
  agent.updateRotation = false;
  agent.updateUpAxis = false;


¡ã»²¹Í¥µ¥¤¥È¡ä
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
NavMeshAgent .updateUpAxis
https://docs.unity3d.com/jp/current/ScriptReferenc...



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

¡¡¼¡¤Ï¡¡¼ê½ç£¸¡¡¡Ý¥«¥á¥é¤ÎÄɽ¾À©¸æ¤Î¼ÂÁõ¡Ý¡¡¤Ç¤¹¡£

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


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

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

Menu



´ðÁÃ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private



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

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