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

¡¡Å¨¥­¥ã¥é¤Î°ÜÆ°·ÐÏ©¤ò»ë³ÐŪ¤Ë¥é¥¤¥óɽ¼¨¤¹¤ëµ¡Ç½¤ò¼ÂÁõ¤·¤Þ¤¹¡£
¤³¤Îµ¡Ç½¤Ï Unity ¤Î»ý¤Ä LineRenderer ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Îµ¡Ç½¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£

¡¡°ÜÆ°·ÐÏ©¤Îɽ¼¨Ãæ¤Ë¤ÏŨ¤¬°ÜÆ°¤ò³«»Ï¤·¤Ê¤¤¤è¤¦¤ËÀ©¸æ½èÍý¤ò²Ã¤¨¤ë¤³¤È¤âɬÍפˤʤê¤Þ¤¹¡£
Ũ¤ÎÀ¸À®¢ª·ÐÏ©ÍѤΥ饤¥ó¤ÎÀ¸À®¢ª¥é¥¤¥ó¤Îºï½ü¢ªÅ¨¤Î°ÜÆ°³«»Ï¡¢¤È¤¤¤¦Î®¤ì¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
¤³¤Î¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤Æ¡¢¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¼ÂÁõ¤¬¤Ç¤­¤ë¤Î¤«¡¢À߷פò¾ÜºÙ¤ËÎý¤ë¤³¤È¤¬ÂçÀڤǤ¹¡£


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


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

¼ê½ç£±£´¡¡¡¼Å¨¥­¥ã¥é¤Î·Ðϩɽ¼¨¤Î¼«Æ°À¸À®½èÍý¤Î¼ÂÁõ¡¼
£²£´¡¥·ÐÏ©ÍѤΠPathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë
£²£µ¡¥·ÐÏ©¤Ë¹ç¤ï¤»¤Æ¼«Æ°Åª¤Ë PathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë½èÍý¤ò¼ÂÁõ¤¹¤ë



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

¡¡¡¦¥Þ¥Æ¥ê¥¢¥ë¤ÎºîÀ®
¡¡¡¦LineRenderer ¥³¥ó¥Ý¡¼¥Í¥ó¥È
¡¡¡¦Tween.Pause ¥á¥½¥Ã¥É
¡¡¡¦Tween.Play ¥á¥½¥Ã¥É
¡¡¡¦List¤Î»È¤¤Êý­¡¡¡¡¼Add ¥á¥½¥Ã¥É¡¼
¡¡¡¦yield return StartCoroutine ¥á¥½¥Ã¥É¤Ë¤è¤ëÂÔµ¡½èÍý



£²£´¡¥·ÐÏ©ÍѤΠPathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë

£±¡¥Àß·×


¡¡·ÐÏ©ÍѤÎɽ¼¨¡¢¤È¤¤¤Ã¤Æ¤â¡¢¤½¤ì¤Ï¥²¡¼¥à²èÌ̤Ǥߤ¿¾ì¹ç¤ÎÆ°¤­¤Ç¤¹¡£
¤½¤ì¤ò¼ÂºÝ¤Ë¥²¡¼¥à¤Î½èÍý¡¢¥í¥¸¥Ã¥¯¤È¤·¤Æ¤É¤Î¤è¤¦¤Ë¹Í¤¨¤Æ¼ÂÁõ¤·¤Æ¤¤¤±¤Ð¤è¤¤¤Î¤«¤ò¸¡Æ¤¤·¤Þ¤¹¡£

¡¡¤³¤Î¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤ëºî¶È¤¬Èó¾ï¤ËÂçÊѤʤΤǤ¹¤¬¡¢¤³¤ì¤¬¥×¥í¥°¥é¥à¤ò¹Ô¤¦¥¨¥ó¥¸¥Ë¥¢¤Ëµá¤á¤é¤ì¤ë¥¹¥­¥ë¤Ë¤Ê¤ê¤Þ¤¹¡£
¥×¥í¥°¥é¥Þ¡¼¤È¤Ï¡¢¼«Ê¬¤Î¹Í¤¨¤é¤ì¤ë°ú¤­½Ð¤·¤ÎÃ椫¤éºÇŬ²ò¤òƳ¤­¤À¤·¤Æ¤½¤ì¤ò¥í¥¸¥Ã¥¯¤È¤·¤ÆÀ߷פ·¡¢¥²¡¼¥àÆâ¤Ë¼ÂÁõ¤¹¤ë¤³¤È¤¬¿¦Ì³¤Ë¤Ê¤ê¤Þ¤¹¡£
Èó¾ï¤Ë¥¯¥ê¥¨¥¤¥Æ¥£¥Ö¤«¤Ä¡¢ÏÀÍýŪ¤Ê¹Í¤¨¤òµá¤á¤é¤ì¤Þ¤¹¤Î¤Ç¡¢¶µºà¤òÄ̤¸¤Æ¥í¥¸¥«¥ë¤Ê»×¹Í¡¢È¯ÁÛ¡¢¹Í¤¨Êý¤ò¿È¤Ë¤Ä¤±¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£
¡¡


¡¡º£²ó¤Î¾ì¹ç¤Ï¡¢·ÐÏ©¤ÎÌð°õ¤ò£±¤Ä¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤ÆºîÀ®¤¹¤ëÀ߷פò¸¡Æ¤¤·¤Þ¤¹¡£
¤½¤ì¤òÊ£¿ôÀ¸À®¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥¹¥¿¡¼¥ÈÃÏÅÀ¤«¤é¥´¡¼¥ëÃÏÅÀ¤Þ¤Ç¤Î·ÐÏ©¤ò¤Ê¤¾¤ë¤è¤¦¤Ê±é½Ð¤Ë¤·¤Þ¤¹¡£


£²¡¥PathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë


¡¡Ìð°õ¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ë PathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Þ¤¹¡£

¡¡¥Ò¥¨¥é¥ë¥­¡¼¤Î¶õ¤¤¤Æ¤¤¤ë¾ì½ê¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤ò³«¤­¡¢Effects => Line ¤òÁªÂò¤·¤Þ¤¹¡£
LineRenderer ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬ºîÀ®¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢Ì¾Á°¤ò PathLine ¤ËÊѹ¹¤·¤Þ¤¹¡£


¥Ò¥¨¥é¥ë¥­¡¼²èÁü



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



¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï´°À®¤Ç¤¹¡£


£³¡¥PathLine ÍѤβèÁü¤ò¼èÆÀ¤·¡¢¥Þ¥Æ¥ê¥¢¥ë¤òºîÀ®¤¹¤ë


¡¡·Ðϩɽ¼¨ÍѤÎÁǺà¤òÍÑ°Õ¤·¤Þ¤¹¡£Ìð°õ¤Î²èÁü¤ò̵ÎÁ¥µ¥¤¥È¤Ê¤É¤«¤éõ¤·¤Æ¡¢Unity ¤Ø¥¤¥ó¥Ý¡¼¥È¤·¤Æ¤¯¤À¤µ¤¤¡£
TextureType ¤Ï Sprite ¤ËÊѹ¹¤·¤Æ¤ª¤­¤Þ¤¹¡£ÇطʤòÆ©²á¤·¤ÆÍøÍѤ·¤¿¤¤¤Î¤Ç¡¢²èÁü¥Õ¥¡¥¤¥ë¤Î³ÈÄ¥»Ò¤Ï png ¥Õ¥¡¥¤¥ë¤Î¤â¤Î¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£


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



¡¡Â³¤¤¤Æ¡¢¿·¤·¤¯¥Þ¥Æ¥ê¥¢¥ë¤ò£±¤ÄºîÀ®¤·¤Þ¤¹¡£
Project Æâ¡¢¤¢¤ë¤¤¤ÏǤ°Õ¤Î¥Õ¥©¥ë¥ÀÆâ¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤ò³«¤­¡¢Create => Material ¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£
̾Á°¤Ï PathArrow ¤ËÊѹ¹¤·¤Þ¤¹¡£

¡¡Shader ¤ÎÀßÄê¤ò LegacyShagers / Particles / Additive ¤ËÊѹ¹¤·¤Þ¤¹¡£
²èÁü¥Õ¥¡¥¤¥ë¤òÀßÄê¤Ç¤­¤ë¹àÌܤ¬É½¼¨¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢Àè¤Û¤É¥¤¥ó¥Ý¡¼¥È¤·¤¿Ìð°õ¤Î²èÁü¥Õ¥¡¥¤¥ë¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£
¤³¤ì¤Ç²èÁü¤òÍøÍѤ·¤¿¥Þ¥Æ¥ê¥¢¥ë¤¬½ÐÍè¾å¤¬¤ê¤Þ¤¹¡£


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



¡¡°Ê¾å¤Ç¥Þ¥Æ¥ê¥¢¥ë¤Ï´°À®¤Ç¤¹¡£


£´¡¥PathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀßÄê¤ò¹Ô¤¦


¡¡PathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î LineRenderer ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÀßÄê¤ò¹Ô¤¤¤Þ¤¹¡£
¤³¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÏľÀþ¤Î²èÁü¤òÉÁ²è¤¹¤ëµ¡Ç½¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤½¤ì¤òÍøÍѤ·¤ÆÌð°õ¤Î²èÁü¤òÉÁ²è¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¡Materials ¤Î Element 1 ¤Ë Default-Line ¤¬¥¢¥µ¥¤¥ó¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤³¤ÎÉôʬ¤ËÀè¤Û¤ÉºîÀ®¤·¤¿ PathArrow ¥Þ¥Æ¥ê¥¢¥ë¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡Â³¤¤¤Æ¡¢Additional Settings ¤Î Sorting Layer ¤ò Chara ¤ËÀßÄꤷ¤Þ¤¹¡£¤³¤ì¤ÇÇطʤΠTileMap ¤è¤ê¤âÍ¥Àè½ç°Ì¤¬¹â¤¯¤Ê¤ê²èÌ̤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£


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


¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£


£µ¡¥DrawPathLine ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë


¡¡LineRenderer ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÀ©¸æ¤ò¹Ô¤Ã¤Æ¤Ï¤¸¤á¤ÆľÀþ¤¬ÉÁ²è¤µ¤ì¤Þ¤¹¡£
DrawPathLine ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¡¢Ä¾Àþ¤Î¥é¥¤¥ó¤òÉÁ²è¤¹¤ë½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£


DrawPathLine.cs

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


¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤ò¹Ô¤¤¤Þ¤¹¡£


£¶¡¥¡ãLineRenderer ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Îµ¡Ç½¡ä


¡¡Line Renderer (¥é¥¤¥ó¥ì¥ó¥À¥é¡¼) ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï¡¢¶õ´Ö¤Î£²¤Ä°Ê¾å¤ÎÅÀ¤ÎÇÛÎó¤ò¤È¤ë¤³¤È¤Ç¡¢¤½¤ì¤¾¤ì¤Î´Ö¤ËľÀþ¤òÉÁ¤­¤Þ¤¹¡£
¸ø¼°¥µ¥¤¥È¤Ë¤Ï £³£Ä ¤È¤¢¤ê¤Þ¤¹¤¬¡¢£²£Ä¤Ç¤â±þ¤·¤Æ³èÍѤ·¤Æ¤¤¤¯¤³¤È¤¬²Äǽ¤Ç¤¹¡£

»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥Þ¥Ë¥å¥¢¥ë
LineRenderer
https://docs.unity3d.com/ja/current/Manual/class-L...
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
LineRenderer
https://docs.unity3d.com/jp/current/ScriptReferenc...


¡¡º£²ó¼ÂÁõ¤·¤Æ¤¤¤ëÊÑ¿ô¤ä¥á¥½¥Ã¥É¤Ë¤Ä¤¤¤Æ¤Þ¤È¤á¤Æ¤ª¤­¤Þ¤¹¡£
ɬ¤º¼«Ê¬¤Ç¤âÄ´¤Ù¤Æ¡¢¼«Ê¬¤ÎÃμ±¤È¤·¤ÆµÛ¼ý¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£


£±¡¥LineRenderer.startWidth

¡¡LineRenderer ¤ÇÉÁ²è¤¹¤ë¥é¥¤¥ó¤ÎÉý¤Î¥¹¥¿¡¼¥È¤Î¥µ¥¤¥º¤òÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ëÊÑ¿ô¤Ç¤¹¡£


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


£²¡¥LineRenderer.endWidth

¡¡LineRenderer ¤ÇÉÁ²è¤¹¤ë¥é¥¤¥ó¤ÎÉý¤ÎºÇ¸å¤Î¥µ¥¤¥º¤òÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ëÊÑ¿ô¤Ç¤¹¡£


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


¡¡¤³¤ì¤é¤Î¾¤Ë¤â¡¢¿§¤òÊѹ¹¤¹¤ëÊÑ¿ô¤ä¡¢¶ÊÀþ¤òÉÁ¤¯¤¿¤á¤ÎÊÑ¿ô¤Ê¤É¤âÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£


£³¡¥LineRenderer.positionCount

¡¡LineRenderer ¤ÇÉÁ²è¤¹¤ë¥é¥¤¥ó¤ÎĺÅÀ¿ô¤òÀßÄꤷ¤¿¤ê¡¢»²¾È¤·¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤­¤ëÊÑ¿ô¤Ç¤¹¡£

  // À¸À®¤¹¤ë¥é¥¤¥ó¤ÎĺÅÀ¿ô¤òÀßÄê(º£²ó¤Ï»ÏÅÀ¤È½ªÅÀ¤ò£±¤Ä¤º¤Ä)
  lineRenderer.positionCount = drawPaths.Length;

¡¡º£²ó¤ÏÂåÆþ½èÍý¤ò¹Ô¤¤¡¢ÄºÅÀ¿ô¤ÎÀßÄê¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£drawPaths.Length ¤ÎÃÍ¤Ï 2 ¤Ç¤¹¤Î¤Ç¡¢¥é¥¤¥ó¤òÀ¸À®¤¹¤ë¤¿¤á¤ÎĺÅÀ¿ô¤ò 2 ¤ËÀßÄꤷ¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢»ÏÅÀ¤È½ªÅÀ¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤Î£²¤Ä¤ÎĺÅÀ¤ò·ë¤Ö¤³¤È¤Ç¥é¥¤¥ó¤òÀ¸À®¤·¤Þ¤¹¡£¤³¤³¤Ç¤Ï¤½¤Î¤¿¤á¤Î½àÈ÷¤ò¤·¤Æ¤¤¤Þ¤¹¡£


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


£´¡¥LineRenderer.SetPositions

¡¡¥é¥¤¥ó¤ÎĺÅÀ¤Î°ÌÃÖ¤ò¤¹¤Ù¤ÆÀßÄꤹ¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£¤³¤Î½èÍý¤Ë¤è¤Ã¤ÆÉÁ²è½èÍý¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
SetPosition ¥á¥½¥Ã¥É¤È¤¤¤¦½èÍý¤âÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¥ê¥Õ¥¡¥ì¥ó¥¹¤Ë¤â¤¢¤ë¤è¤¦¤Ë¡¢Ê£¿ô¤Î¥é¥¤¥ó¤òÉÁ²è¤¹¤ë¾ì¹ç¤Ë¤Ï¤³¤Á¤é¤Î½èÍý¤ÎÍøÍѤ¹¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£

  lineRenderer.SetPositions(drawPaths);

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


¡¡¤½¤Î¤Û¤«¤Î³èÍÑ»öÎã¤ò¾Ò²ð¤·¤Æ¤¤¤ë¥µ¥¤¥È¤â¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¼«Ê¬¤Ç¤â¸¡º÷¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

»²¹Í¥µ¥¤¥È
¤Ï¤Ê¤Á¤ë¤Î¥Þ¥¤¥Î¡¼¥È ÍÍ
¡ÚUnity¡ÛLineRenderer¤ò¥¹¥¯¥ê¥×¥È¤«¤é¼«Í³¼«ºß¤ËÁà¤ë
https://www.hanachiru-blog.com/entry/2020/10/05/12...


£·¡¥PathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë DrawPathLine ¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤ÆÀßÄê¤ò¹Ô¤¦


¡¡¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤¢¤ë PathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¡¢ºîÀ®¤·¤¿ DrawPathLine ¥¹¥¯¥ê¥×¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£
¥¢¥¿¥Ã¥Á¤·¤¿ºÝ¤Ë¤Ïɬ¤ºÂоݤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò³Îǧ¤·¤Æ¡¢¥¢¥¿¥Ã¥Á¤Ç¤­¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Þ¤¹¡£

¡¡DrawPathLine ¥¹¥¯¥ê¥×¥È¤Ë¤ÏÀßÄê¹àÌܤϣ²¤«½ê¤¢¤ê¤Þ¤¹¤¬¡¢¥¹¥¯¥ê¥×¥ÈÆâ¤Ç½é´üÃͤòÀßÄꤷ¤Æ¤¤¤ë¤¿¤á¡¢ÆäËÀßÄꤷ¤Ê¤¯¤Æ¤âÌäÂꤢ¤ê¤Þ¤»¤ó¡£
¤³¤ÎÃͤϡ¢¼ÂºÝ¤ËÌð°õ¤ÎÉÁ²è¤¬¹Ô¤ï¤ì¤¿ºÝ¤ËÄ´À°¤¹¤ëÉôʬ¤Ç¤¹¡£¼«Ê¬¤ÎÍÑ°Õ¤·¤¿²èÁü¤È¤Î·ó¤Í¹ç¤¤¤ÇŬµ¹Êѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£


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



¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤·¡¢PathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ï´°À®¤Ç¤¹¡£


£¸¡¥PathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥×¥ì¥Õ¥¡¥Ö¤Ë¤¹¤ë


¡¡´°À®¤·¤¿ PathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥×¥ì¥Õ¥¡¥Ö¤Ë¤·¤Þ¤¹¡£

¡¡Prefabs ¥Õ¥©¥ë¥À¤Ø¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥×¥ì¥Õ¥¡¥Ö¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¥×¥ì¥Õ¥¡¥Ö¤Ë¤Ê¤Ã¤¿¤é¡¢¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤¢¤ë PathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ïºï½ü¤·¤Æ¤¯¤À¤µ¤¤¡£


£²£µ¡¥·ÐÏ©¤Ë¹ç¤ï¤»¤Æ¼«Æ°Åª¤Ë PathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë½èÍý¤ò¼ÂÁõ¤¹¤ë

£±¡¥Àß·×


¡¡£±¤Ä¤Î¥é¥¤¥ó¤òºîÀ®¤·¤Æ¡¢¶Ê¤¬¤ê³Ñ¤òÍÑ°Õ¤·¤ÆÀ¸À®¤¹¤ëÊýË¡¤È¡¢Ê£¿ô¤ÎľÀþ¤Î¥é¥¤¥ó¤òºîÀ®¤·¤Æ¡¢¤½¤ì¤ò¤Ä¤Ê¤²¤Æ¤¤¤¯ÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£
£±¤Ä¤Î¥é¥¤¥ó¤ÇºîÀ®¤ò¤¹¤ë¤È¡¢²èÁü¤¬¿­¤Ó¤Æ¤·¤Þ¤¦¤¿¤á¡¢º£²ó¤ÏÊ£¿ô¤ÎľÀþ¤Î¥é¥¤¥ó¤òºîÀ®¤¹¤ëÊýË¡¤Ç¼ÂÁõ¤ò¸¡Æ¤¤·¤Þ¤¹¡£


¥Ò¥¨¥é¥ë¥­¡¼²èÁü



Scene¥Ó¥å¡¼¤ÈGame¥Ó¥å¡¼²èÁü



¡¡¥×¥ì¥Õ¥¡¥Ö¤Ë¤·¤¿ PathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥³¡¼¥Ê¡¼¤Î¤¿¤Ó¤ËÀ¸À®¤·¡¢Ê£¿ô¤Î¥é¥¤¥ó¤òºî¤Ã¤Æ¤¤¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£
º£²ó¤Ï¤³¤Î¥é¥¤¥ó¤ÎÀ¸À®½èÍý¤È¡¢PathTranSet ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î°ÜÆ°·ÐÏ©¤Î¾ðÊó¤È¤òϢư¤µ¤»¤Æ¡¢£Á ¤Î°ÌÃÖ¤«¤é £Â ¤Î°ÌÃ֤ޤǤò£±¤Ä¤Î¥é¥¤¥ó¤È¤·¤Æ¡¢¤½¤ì¤ò·ÐÏ©¤Î½çÈÖ¤´¤È¤ËÀ¸À®½èÍý¤¹¤ëµ¡Ç½¤ò¼ÂÁõ¤·¤Þ¤¹¡£
¤³¤Î½èÍý¤Ï PathTranSet ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë PathData ¥¹¥¯¥ê¥×¥È¤Î°ÜÆ°·ÐÏ©¤Î¾ðÊó¤Ç¤¢¤ë PathTranArray ÊÑ¿ô¤¬ÇÛÎó¤Ç´ÉÍý¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢¤½¤ì¤ò¾å¼ê¤¯ÁȤ߹礻¤Æ¥í¥¸¥Ã¥¯¤òÁȤߤޤ¹¡£

¡¡¶ñÂÎŪ¤Ë¤Ï¡¢StartTran ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÃÏÅÀ¤«¤é PathTran ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÃÏÅÀ¤Þ¤Ç¤Ë£±¤Ä¤Î¥é¥¤¥ó¤òºîÀ®¤·¤Þ¤¹¡£
¤³¤ì¤Ï PathTranArray ÇÛÎó¤Î Element 0 =>¡¡Element 1 ¤ËÂФ·¤Æ¥é¥¤¥ó¤òºî¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡¤½¤ì¤¬´°À®¤·¤¿¤é¡¢¼¡¤Ï¡¢Element 1 => Element 2 ¤ËÂФ·¤Æ¥é¥¤¥ó¤òºîÀ®¤·¤Þ¤¹¡£
¤³¤ì¤òºÇ¸å¤Î¥´¡¼¥ëÃÏÅÀ¤Ë¤Ê¤ë¤Þ¤Ç·«¤êÊÖ¤¹¤³¤È¤Ë¤è¤Ã¤Æ¡¢¾åµ­¤Î²èÁü¤Î¤è¤¦¤ËÊ£¿ô¤Î¥é¥¤¥ó¤òºîÀ®¤·¤Æ·Ðϩɽ¼¨¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£


¡ãPathTranArray ÊÑ¿ô¤Î¾ðÊó¤ò³èÍѤ¹¤ë¡ä


¡¡¤³¤Î½èÍý¤Î¼ÂÁõ¤Ë¤Ï¡¢Å¨¥­¥ã¥é¤Î°ÜÆ°½èÍý¤Ë¤âÂ礭¤¯¤«¤«¤ï¤Ã¤Æ¤¤¤Þ¤¹¡£
¤É¤¦¤¤¤¦¤³¤È¤«¤È¤¤¤¦¤È¡¢¥é¥¤¥ó¤Îɽ¼¨¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë´Ö¤Ï¡¢Å¨¥­¥ã¥é¤Î°ÜÆ°¤ò°ì»þŪ¤ËÄä»ß¤·¤Æ¤ª¤¯¤è¤¦¤Ë¤·¤Ê¤¤¤È¡¢
¥é¥¤¥ó¤Îɽ¼¨Ãæ¤ËŨ¥­¥ã¥é¤¬°ÜÆ°¤ò¤·¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤Ê¤ë¤¿¤á¤Ç¤¹¡£

¡¡¥¿¥ï¡¼¥Ç¥£¥Õ¥§¥ó¥¹¥²¡¼¥à¤Ç¤Ï»öÁ°¤ËŨ¤Î°ÜÆ°·ÐÏ©¤Î¾ðÊó¤ò¥×¥ì¥¤¥ä¡¼¤ËÄ󶡤·¡¢¤½¤ì¤ò¸µ¤Ë¥×¥ì¥¤¥ä¡¼¤Ï¹Í¤¨¤ë»þ´Ö¤òºî¤ê¤Þ¤¹¡£
¤½¤Î¸å¤ËŨ¥­¥ã¥é¤¬¼ÂºÝ¤Ë°ÜÆ°¤ò³«»Ï¤¹¤ë¤È¤¤¤¦Î®¤ì¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤³¤ì¤ò¼Â¸½¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¥é¥¤¥ó¤ÎÀ¸À®½èÍý¤À¤±¤Ç¤Ï¤Ê¤¯¡¢
Ũ¥­¥ã¥é¤Î°ÜÆ°¤ÎÀ©¸æ½èÍý¤â°ì½ï¤Ë¼ÂÁõ¤ò¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£

¡¡¼ÂºÝ¤Î¥é¥¤¥ó¤ÎÀ¸À®½èÍý¤Ë¤Ä¤¤¤Æ¤Ï¡¢Å¨¤òÀ¸À®¤¹¤ëµ¡Ç½¤ò»ý¤Ä¥¹¥¯¥ê¥×¥È¤ÇÀ©¸æ¤¹¤ëÊýË¡¤È¡¢³ÆŨ¥­¥ã¥é¤´¤È¥é¥¤¥ó¤òÀ¸À®¤¹¤ëÊýË¡¤¬¹Í¤¨¤é¤ì¤Þ¤¹¡£
º£²ó¤ÏŨ¤òÀ¸À®¤¹¤ë EnemyGenerator ¥¹¥¯¥ê¥×¥È¦¤Ç¥é¥¤¥ó¤òÀ¸À®¤¹¤ë¤è¤¦¤ËÀ߷פ·¤Þ¤¹¡£
¤³¤ì¤Ï¡¢¥é¥¤¥óÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥×¥ì¥Õ¥¡¥Ö¤È¤·¤ÆÅÐÏ¿¤¹¤ë¤³¤È¤ò¹Í¤¨¤Æ¤Î¤³¤È¤Ç¤¹¡£
EnemyGenerator ¥¹¥¯¥ê¥×¥È¤Ç¤¢¤ì¤Ð£±¤ÄÅÐÏ¿¤¹¤ì¤ÐºÑ¤ß¤Þ¤¹¤¬¡¢Å¨¥­¥ã¥é¤ËÀßÄꤹ¤ë¤È¤Ê¤ë¤È¡¢¤¹¤Ù¤Æ¤ÎŨ¥­¥ã¥é¤´¤È¤Ë¥é¥¤¥óÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥×¥ì¥Õ¥¡¥Ö¤òÅÐÏ¿¤¹¤ëɬÍפ¬À¸¤Þ¤ì¤Þ¤¹¡£
10ÂΤ¤¤ì¤Ð¡¢10²ó¥¢¥µ¥¤¥ó¤¬É¬ÍפǤ¹¡£¤â¤·¤â¥¢¥µ¥¤¥óϳ¤ì¤¬¤¢¤ì¤Ð¥²¡¼¥à¤¬Ää»ß¤·¤Æ¤·¤Þ¤¦¶²¤ì¤â¤¢¤ê¤Þ¤¹¡£

¡¡¤½¤¦¤¤¤Ã¤¿´ÑÅÀ¤«¤é¹Í¤¨¤Æ¡¢º£²ó¤Ï£±²ó¤Î¥¢¥µ¥¤¥ó¤ÇºÑ¤à¤è¤¦¤Ë EnemyGenerator ¥¹¥¯¥ê¥×¥ÈÆâ¤Ç¡¢Å¨¤ÎÀ¸À®¤Ë¹ç¤ï¤»¤Æ¡¢¤½¤ÎŨ¤Î°ÜÆ°·ÐÏ©¤Î¾ðÊó¤òÍøÍѤ·¤Æ
¥é¥¤¥ó¤òÀ¸À®¤¹¤ë¤È¤¤¤¦À©¸æ¤ÇÀ߷פò¹Í¤¨¤Æ¤¤¤­¤Þ¤¹¡£


£²¡¥EnemyController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë


¡¡¤É¤Î¤è¤¦¤Ê¥í¥¸¥Ã¥¯¤òÁȤá¤Ð¡¢¥é¥¤¥ó¤ÎÀ¸À®½èÍý¤¬½ªÎ»¤·¤Æ¤«¤éŨ¥­¥ã¥é¤¬°ÜÆ°¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¤«¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£

¡¡DOTween ¤Î½èÍý¤òÍøÍѤ·¤ÆŨ¥­¥ã¥é¤ò°ÜÆ°¤µ¤»¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤½¤Î°ÜÆ°½èÍý¤Ï tween ÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢°ÜÆ°¤Î°ì»þÄä»ß¤äºÆ³«¤Î½èÍý¤Ë¤Ä¤¤¤Æ¤â¡¢DOPath ¥á¥½¥Ã¥É¤Ë¤è¤ë°ÜÆ°½èÍý¤òľÀÜÊѹ¹¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢
¤³¤Î tween ÊÑ¿ô¤Ë¤¿¤¤¤·¤Æ½èÍý¤ò¼Â¹Ô¤¹¤ë¤³¤È¤ÇÀ©¸æ¤ò¹Ô¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¡£


EnemyController.cs


¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤ò¤·¤Þ¤¹¡£


£³¡¥¡ãTween.Pause ¥á¥½¥Ã¥É¡ä


¡¡DOTween ¤Î Tween ½èÍý¤òÊÑ¿ô¤ËÂåÆþ¤·¤Æ¤ª¤¯¤³¤È¤Ë¤è¤ê¡¢Kill ¥á¥½¥Ã¥É¤Î¾¤Ë¤âÀ©¸æ¤ò¹Ô¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡Pause ¥á¥½¥Ã¥É¤Ï Tween ¤Î½èÍý¤ò°ì»þÄä»ß¤¹¤ëÌ¿Îá¤Ç¤¹¡£¤³¤Î½èÍý¤ò¹Ô¤¦¤³¤È¤Ë¤è¤ê¡¢Tween ·¿¤ÎÊÑ¿ôÆâ¤ËÂåÆþ¤µ¤ì¤Æ¤¤¤ë¼Â¹ÔÃæ¤Î DOTween ¤Î½èÍý¤ò°ì»þÄä»ß½ÐÍè¤Þ¤¹¡£


    private Tween tween;


¡¡  // ³ÆÃÏÅÀ¤Ë¸þ¤±¤Æ°ÜÆ°
    tween = transform.DOPath(paths, 1000 / moveSpeed).SetEase(Ease.Linear).OnWaypointChange(ChangeAnimeDirection);

¡¡  // ½èÍý¤ò°ì»þÄä»ß
    PauseMove();


    /// <summary>
    /// °ÜÆ°¤ò°ì»þÄä»ß
    /// </summary>
    public void PauseMove() {
        tween.Pause();
    }


£´¡¥¡ãTween.Play ¥á¥½¥Ã¥É¡ä


¡¡°ì»þÄä»ß¤·¤Æ¤¤¤ë DOTween ¤Î½èÍý¤Ï£²¤Ä¤ÎÊýË¡¤ÇºÆ³«²Äǽ¤Ç¤¹¡£¤Ä¤Þ¤ê¡¢¾å¼ê¤¯»È¤¤Ê¬¤±¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
£±¤Ä¤Ïº£²óÍøÍѤ·¤Æ¤¤¤ë Play ¥á¥½¥Ã¥É¤Ç¤¹¡£¤³¤ÎÌ¿Îá¤Ç¤Ï¡¢°ì»þÄä»ß¤·¤ÆÃæÃǤ·¤Æ¤¤¤ë DOTween ¤Î½èÍý¤Î³¤­¤«¤é½èÍý¤òºÆ³«¤Ç¤­¤Þ¤¹¡£
¤â¤¦£±¤Ä¤Ï Restart ¥á¥½¥Ã¥É¤Ç¤¹¡£¤³¤ÎÌ¿Îá¤Ç¤Ï³¤­¤«¤é¤Ç¤Ï¤Ê¤¯¡¢ºÇ½é¤«¤é½èÍý¤ÎºÆÀ¸¤ò¤ä¤êľ¤·¤Þ¤¹¡£

¡¡¥í¥¸¥Ã¥¯¤È¤·¤Æ¤Ï¡¢°ÜÆ°·ÐÏ©¤Î¥é¥¤¥ó¤òɽ¼¨¤·¤Æ¤¤¤ë´Ö¤Ï Pause ¥á¥½¥Ã¥É¤Ç°ÜÆ°¤Î½èÍý¤ò°ì»þÄä»ß¤·¤Æ¤ª¤¤¤Æ¡¢
¥é¥¤¥ó¤Îɽ¼¨¤¬½ªÎ»¤·¤¿¥¿¥¤¥ß¥ó¥°¤Ç¤³¤Î Play ¥á¥½¥Ã¥É¤Ç°ÜÆ°¤òºÆ³«¤·¤Æ¤¤¤Þ¤¹¡£

¡ãEnemyGenerator.cs¡ä
    /// <summary>
    /// ¥é¥¤¥óÀ¸À®¤Î½àÈ÷
    /// </summary>
    private IEnumerator PreparateCreatePathLine(Vector3[] paths, EnemyController enemyController) {

¡¡¡¡¡¡¡¡// ¥é¥¤¥ó¤ÎÀ¸À®¤Èºï½ü¡£¤³¤Î½èÍý¤¬½ªÎ»¤¹¤ë¤Þ¤Ç¤Ï¡¢¤³¤Î½èÍý¤è¤ê²¼¤Î½èÍý¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤
        yield return StartCoroutine(CreatePathLine(paths));

¡¡¡¡¡¡¡¡// Ũ¤Î°ÜÆ°¤òºÆ³«
        enemyController.ResumeMove();
    }
¡¡
¡ãEnemyController.cs¡ä
    /// <summary>
    /// °ÜÆ°ºÆ³«
    /// </summary>
    public void ResumeMove() {
        tween.Play();
    }

£µ¡¥EnemyGenerator ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë


¡¡¥é¥¤¥ó¤ÎÀ¸À®½èÍý¤Ë¤Ä¤¤¤Æ¤ÏŨ¤òÀ¸À®¤¹¤ëºÝ¤Ë°ì½ï¤ËÀ¸À®¤¹¤ë¤è¤¦À߷פ·¤Þ¤·¤¿¡£
¤½¤ì¤ò¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤Æ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£

¡¡°ÜÆ°·ÐÏ©¤Ë¤Ä¤¤¤Æ¤Ï¥é¥¤¥ó¤ÎÀ¸À®¤ÎºÝ¤Ë¤âÍøÍѤ·¤Þ¤¹¤Î¤Ç¡¢°ÊÁ°¤Ï EnemyController ¥¹¥¯¥ê¥×¥ÈÆâ¤Ç·ÐÏ©¾ðÊó¤òºîÀ®¤·¤Æ¤¤¤Þ¤·¤¿¤¬¡¢
¤½¤Î½èÍý¤ò EnemyGenerator ¥¹¥¯¥ê¥×¥È¦¤Ë°ÜÆ°¤·¡¢ºîÀ®¤·¤¿·ÐÏ©¾ðÊó¤ò EnemyController ¥¹¥¯¥ê¥×¥È¦¤Ø°ú¿ô¤òÄ̤¸¤ÆÅϤ¹¤è¤¦¤Ë¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

¡¡¿·¤·¤¯¥á¥½¥Ã¥É¤ò£²¤ÄºîÀ®¤·¤Æ¤¤¤Þ¤¹¡£CreatePathLine ¥á¥½¥Ã¥É¤Î½èÍý¤ò¼«Ê¬¤Ç¥³¥á¥ó¥È¤ò½ñ¤¤¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£


EnemyGenerator.cs


¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£


£¶¡¥¡ãList¤Î»È¤¤Êý­¡¡¡¡¼Add ¥á¥½¥Ã¥É¡¼¡ä


¡¡List ¥¯¥é¥¹¤Ï <T> ¤Ë¥¸¥§¥Í¥ê¥Ã¥¯·¿¡ÊǤ°Õ¤Î·¿¡Ë¤ò»ØÄꤷ¤Æ¡¢Æ±¤¸¥Ç¡¼¥¿·¿¤ò¤Þ¤È¤á¤Æ´ÉÍý¤¹¤ë¥³¥ì¥¯¥·¥ç¥óµ¡Ç½¤ò»ý¤Ä¥¯¥é¥¹¤Ç¤¹¡£
ÇÛÎó¤È°Û¤Ê¤ê¡¢Í×ÁǤò¼«Í³¤ËÄɲᦺï½ü¤Ç¤­¤Þ¤¹¡£(Í×ÁÇ¿ô¤¬²ÄÊѤ¹¤ë)

¡¡List ¤òÍøÍѤ¹¤ë¤Ë¤ÏÀë¸À¤Ë¹ç¤ï¤»¤Æ½é´ü²½¤Î½èÍý¤¬É¬Íפˤʤê¤Þ¤¹¡£

  // List ¤ÎÀë¸À¤È½é´ü²½
  List<DrawPathLine> drawPathLinesList = new List<DrawPathLine>();


List.Add(T·¿) ¥á¥½¥Ã¥É

¡¡List¤ÎËöÈø¤Ë°ú¿ô¤Ç»ØÄꤷ¤¿Í×ÁÇ(¥Ç¡¼¥¿)¤òÄɲä·¤Þ¤¹¡£
°ú¿ô¤¬ T ·¿¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤ì¤Ï List ¤òÀë¸À¤·¤¿ºÝ¤Ë»È¤Ã¤¿·¿¤¬¼«Æ°Åª¤ËÆþ¤ê¤Þ¤¹¡£
º£²ó¤Ï DrawPathLine ·¿¤Î List ¤òÀë¸À¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Add ¥á¥½¥Ã¥É¤Î°ú¿ô¤Ë¤Ï DrawPathLine ·¿¤Î¤ß»ØÄê¤Ç¤­¤Þ¤¹¡£

¡¡¤½¤Î¤¿¤á¡¢List¤ÇÀë¸À¤·¤Æ¤¤¤ë·¿¤ÈƱ¤¸·¿¤Ç¤¢¤ì¤Ð Add ¥á¥½¥Ã¥É¤Ç List ¤ËÍ×ÁǤòÄɲ乤뤳¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡DrawPathLine drawPathLine = Instantiate(pathLinePrefab, transform.position, Quaternion.identity);

¡¡drawPathLinesList.Add(drawPathLine);

¡¡Äɲ䵤줿Í×ÁǤϡ¢¼«Æ°Åª¤Ë List ¤ÎºÇ¸å¤Ë½çÈÖ¤ËÄɲ䵤ì¤Æ¤¤¤­¤Þ¤¹¡£
Î㤨¤Ð¡¢drawPathLinesList ¤¬¤Þ¤À£±¤Ä¤âÍ×ÁǤ¬¤Ê¤±¤ì¤Ð¡¢drawPathLinesList[0] ¤È¤·¤Æ£±¤ÄÌܤËÍ×ÁǤ¬Äɲ䵤ì¤Þ¤¹¡£
¤½¤Î¤¢¤È¤Ë Add ¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢drawPathLinesList[1] ¤È¤·¤Æ£²¤ÄÌܤËÍ×ÁǤ¬Äɲ䵤ì¤Þ¤¹¡£


£·¡¥¡ãyield return StartCoroutine ¥á¥½¥Ã¥É¤Ë¤è¤ëÂÔµ¡½èÍý¡ä


¡¡¥³¥ë¡¼¥Á¥ó(Coroutine)¤È¤Ï°ìÄê¤Î»þ´Ö¤ä¾ò·ï¤ò¤â¤È¤Ë¡¢½èÍý¤òÃæÃÇ¡¦ºÆ³«¡¦½ªÎ»¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë½èÍý¤Î¤³¤È¤Ç¡¢ÈóƱ´ü½èÍý¤È¸Æ¤Ð¤ì¤Þ¤¹¡£

¡¡¥³¥ë¡¼¥Á¥ó¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤ÊÀâÌÀ¤Ï³ä°¦¤·¤Þ¤¹¡£¤³¤Á¤é¤Îµ­»ö¤ä¡¢¥µ¥¤¥È¤Ç¹­¤¯¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤ò»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£

XR-HU3ÍÍ
¡ÚUnity¡Û¥³¥ë¡¼¥Á¥ó¤Ç½èÍý¤òÃæÃÇ¡¦ºÆ³«¡¦Ää»ß¤µ¤»¤ëÊýË¡¤ò³Ø¤Ö
https://xr-hub.com/archives/20368


¡¡¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥ÉÆâ¤Ë¤Ï¡¢yield ¤òÍøÍѤ·¤¿½èÍý¤òµ­½Ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
Î㤨¤Ð¡¢¿ôÉô֤ÎÃÙ±ä½èÍý¤ä¡¢¾ò·ïãÀ®¤Þ¤Ç¥á¥¤¥ó¥¹¥ì¥Ã¥É¤Î½èÍý¤ò°ì»þÃæÃǤ·¤ÆÂÔµ¡¤µ¤»¤ë½èÍý¤Ê¤É¤ò¡¢¤³¤Î yield ¤òÍøÍѤ¹¤ë¤È¼ÂÁõ¤Ç¤­¤Þ¤¹¡£

    /// <returns></returns>
    private IEnumerator PreparateCreatePathLine(Vector3[] paths) {

¡¡¡¡¡¡¡¡// ¥é¥¤¥ó¤ÎÀ¸À®¤Èºï½ü¡£¤³¤Î½èÍý¤¬½ªÎ»¤¹¤ë¤Þ¤Ç¤Ï¡¢¤³¤Î½èÍý¤è¤ê²¼¤Î½èÍý¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤
        yield return StartCoroutine(CreatePathLine(paths));

¡¡¡¡¡¡¡¡// Ũ¤Î°ÜÆ°¤òºÆ³«
        enemyController.ResumeMove();
    }

¡¡Ä̾ï¤Î¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤·¤È°ã¤¤¤Þ¤·¤Æ¡¢¸Æ¤Ó½Ð¤¹Á°¤Ë yield return ¤¬¤¢¤ê¤Þ¤¹¡£
¤³¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤µ¤ì¤¿¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤Î½èÍý¤¬¤¹¤Ù¤Æ½ªÎ»¤¹¤ë¤Þ¤Ç¡¢¤³¤³¤Ç¥×¥í¥°¥é¥à¤ò°ì»þÃæÃǤ·¤ÆÂÔµ¡¤µ¤»¤ë¡¢¤È¤¤¤¦½èÍý¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£

¡¡¸Æ¤Ó½Ð¤¹¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤Î½èÍý¤Ï¡¢
¡ÖEnemyGenerator ¥¹¥¯¥ê¥×¥È¤Ë¤¢¤ë CreatePathLine ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¡£¤½¤Î¥á¥½¥Ã¥É¤Î½èÍý¤¬¤¹¤Ù¤Æ½ªÎ»¤¹¤ë¤Þ¤Ç¡¢¥×¥í¥°¥é¥à¤ò°ì»þÃæÃǤµ¤»¤ë¡×

¤È¤¤¤¦ÆâÍƤǤ¹¡£

¡¡¤½¤Î·ë²Ì¡¢¥é¥¤¥ó¤ÎÀ¸À®¤Èºï½ü¤¬½ªÎ»¤·¤Æ¤«¤é¡¢¤Ï¤¸¤á¤Æ¼¡¤Î½èÍý(Ũ¤Î°ÜÆ°¤òºÆ³«)¤¬¹Ô¤ï¤ì¤ë¤È¤¤¤¦½èÍý¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

¡¡¤³¤ì¤ÏÆäˡ¢CreatePathLine ¥á¥½¥Ã¥É¤Î¤è¤¦¤Ë¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤Ç¤ÎÈóƱ´ü½èÍý¤ò¹Ô¤¦¾ì¹ç¤Ë¸ú²ÌŪ¤Ç¤¹¡£
Ä̾ï¤Î¥×¥í¥°¥é¥à¤ÏƱ´ü½èÍý¤Ç¤¹¤Î¤Ç¤½¤Î½èÍý¤¬¤¹¤Ù¤Æ¼Â¹Ô¤µ¤ì¤Æ¤«¤é¼¡¤Î½èÍý¤Ë°Ü¹Ô¤·¤Þ¤¹¡£
¤Ç¤¹¤¬¡¢º£²ó¤Î CreatePathLine ¥á¥½¥Ã¥É¤Ï¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤Ç¤¹¤Î¤Ç¡¢¤½¤Î½èÍý¤Î¼Â¹Ô̵ͭ¤òȽÄꤷ¤Æ¼¡¤Ë¿Ê¤à½èÍý¤¬¹Ô¤¨¤Þ¤»¤ó¡£

¡¡¤½¤Î¤¿¤áÈóƱ´ü½èÍý¤¬½ªÎ»¤¹¤ë¤Î¤òÂÔµ¡¤¹¤ë¤è¤¦¤Ë¤·¤Ê¤¤¤È¥é¥¤¥ó¤ÎÀ¸À®¤Èºï½ü¤Î½èÍý¤¬½ª¤ï¤Ã¤Æ¤«¤é¼¡¤Î½èÍý¤Ë°Ü¹Ô¤¹¤ë¡¢¤È¤¤¤¦¼ê½ç¤Ç¥×¥í¥°¥é¥à¤¬¿Ê¤ß¤Þ¤»¤ó¡£
¥×¥í¥°¥é¥à¤Ï¾å¤«¤é²¼¤Ø¤Èή¤ì¤Æ½èÍý¤µ¤ì¤Æ¤¤¤­¤Þ¤¹¤¬¡¢¤³¤Î¤è¤¦¤ÊÈóƱ´ü½èÍý¤Î¾ì¹ç¤Ë¤Ï¡¢ÃæÃǽèÍý¤ò¶´¤à¤³¤È¤Ë¤è¤Ã¤Æ¥²¡¼¥à¤Îή¤ì¤òÀ©¸æ¤·¤Æ¤¤¤Þ¤¹¡£


£¸¡¥EnemyGenerator ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀßÄê¤ò¹Ô¤¦


¡¡DrawPathLine ¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤ò¥¢¥µ¥¤¥ó¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£


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



¡¡¤³¤Î¥¹¥¯¥ê¥×¥È¤Ï PathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
Prefabs ¥Õ¥©¥ë¥ÀÆâ¤Ë¤¢¤ë PathLine ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£


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



¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£


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


¡¡Å¨¤ÎÀ¸À®Â®ÅÙ¤¬Â®¤¤¤È¥é¥¤¥óɽ¼¨¤¬½Å¤Ê¤Ã¤Æ¤·¤Þ¤¦¤¿¤á¡¢GameManager ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î GenerateIntervalTime ÊÑ¿ô¤òÄ´À°¤·¤ÆŬµ¹¤Ê´Ö³Ö¤ÇÀ¸À®¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ëÉôʬ¤¬¥Ý¥¤¥ó¥È¤Ç¤¹¡£
300 ¡Á 500 Á°¸å¤Ç»î¤·¤Æ¤ß¤ë¤È¤¤¤¤¤Ç¤·¤ç¤¦¡£

¡¡¥Ç¥Ð¥Ã¥°¤ò¹Ô¤¦ºÝ¤Ë¤Ï¡¢¼«Ê¬¤ÇÄ´À°¤ò¹Ô¤Ã¤Æ¡¢¤Ê¤ë¤Ù¤¯´Êñ¤Ë·«¤êÊÖ¤·¥Ç¥Ð¥Ã¥°¤¬½ÐÍè¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤¯¤³¤È¤¬ÂçÀڤǤ¹¡£
¤³¤ì¤Ïº£²ó¤Î½èÍý¤Ë¸Â¤é¤º¡¢¤¹¤Ù¤Æ¤Î¥Ç¥Ð¥Ã¥°¤Ë¶¦Ä̤¹¤ë¤³¤È¤Ç¤¹¤Î¤Ç¡¢¿§¡¹¤È¤ä¤ê¤ä¤¹¤¤ÊýË¡¤ò¹Í¤¨¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£

¡¡°ÜÆ°·ÐÏ©¤Î¥é¥¤¥ó¤¬¥¹¥¿¡¼¥ÈÃÏÅÀ¤«¤é£±¤Ä¤º¤Ä½çÈÖ¤Ëɽ¼¨¤µ¤ì¤Æ¡¢¤·¤Ð¤é¤¯¤·¤Æ¤«¤é¤Þ¤¿¡¢¥¹¥¿¡¼¥ÈÃÏÅÀ¤«¤é£±¤Ä¤º¤Ä½çÈ֤˺ï½ü¤µ¤ì¤Æ¤¤¤ì¤ÐÀ©¸æÀ®¸ù¤Ç¤¹¡£
Scene¥Ó¥å¡¼¤ò¸«¤Ê¤¬¤é¡¢À¸À®¤µ¤ì¤¿Å¨¤¬¤¹¤°¤Ë°ÜÆ°¤ò³«»Ï¤»¤º¤Ë¡¢°ÜÆ°·ÐÏ©¤Î¥é¥¤¥óɽ¼¨¤¬½ªÎ»¤·¤Æ¤«¤é°ÜÆ°¤ò³«»Ï¤·¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£


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




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

¡¡¼¡¤Ï¡¡¼ê½ç£±£µ¡¡¡Ý°Û¤Ê¤ëÀ¸À®ÃÏÅÀ¤Ç¤ÎŨ¥­¥ã¥é¤Î¼«Æ°À¸À®½èÍý¤Î¼ÂÁõ¡Ý¡¡¤Ç¤¹¡£

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


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

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

Menu



´ðÁÃ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private



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

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