ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2022ǯ01·î19Æü(¿å) 15:48:29ÍúÎò
¡¡¿Í·¿¤Î¾ã³²Êª¤Ï¡¢×Ñ×Ë¥¿¥¤¥×¡¢ÄÉÀ×¥¿¥¤¥×¡¢¤½¤ì¤é¤òÁȤ߹ç¤ï¤»¤¿¤â¤Î¤ò¸¡Æ¤¤·¤Þ¤¹¡£
¤¤¤º¤ì¤Î¥¿¥¤¥×¤â»ë³¦¤Î³µÇ°¤ò»ý¤Á¡¢»ë³¦Æâ¤Ë¥×¥ì¥¤¥ä¡¼¤¬¿¯Æþ¤·¤¿¾ì¹ç¤ËÈ¿±þ¤·¤Þ¤¹¡£
¡¡º£²ó¤ÎÀ߷פǤϾ㳲ʪ¤Î¥Ù¡¼¥¹¤È¤Ê¤ë¥¹¥¯¥ê¥×¥È¤Ë¤Ä¤¤¤Æ³Ø½¬¤·¤Þ¤¹¡£
»ë³¦¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡²ó°Ê¹ß¤Ç¼ÂÁõ¤ò¹Ô¤¤¤Þ¤¹¡£
¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡ã¿·¤·¤¯³Ø½¬¤¹¤ëÆâÍÆ¡ä
¡¡¡¦¥¯¥é¥¹¤Î·Ñ¾µ ¡¡¡¦abstract(¥¢¥Ö¥¹¥È¥é¥¯¥È) ½¤¾þ»Ò¤Ë¤è¤ëÃê¾Ý¥¯¥é¥¹¤ÈÃê¾Ý¥á¥½¥Ã¥É¤ÎÀë¸À ¡¡¡¦virtual(¥Ð¡¼¥Á¥ã¥ë) ¥¡¼¥ï¡¼¥É ¡¡¡¦override(¥ª¡¼¥Ð¡¼¥é¥¤¥É) ¥¡¼¥ï¡¼¥É¡¡¥¯¥é¥¹¤Î·Ñ¾µ»þ¤ËÍøÍѤǤ¤ë¡¢²¾ÁÛ(Ãê¾Ý)¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É½èÍý¡¡¡¼Â¿ÂÖÀ(¥Ý¥ê¥â¡¼¥Õ¥£¥º¥à)¡¼ ¡¡¡¦NavMeshAgent ¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ëÊÑ¿ô¤È¥á¥½¥Ã¥É¡
¡¡º£²ó¤Î¼ê½ç¤Ç¤Ï¡¢¥¯¥é¥¹¤Î·Ñ¾µ¤È¿ÂÖÀ¤È¤¤¤¦¡¢¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤ª¤±¤ë½ÅÍפʳµÇ°(¸¶Â§)¤òÍøÍѤ·¤¿À߷פγؽ¬¤ò¹Ô¤¤¤Þ¤¹¡£
¾ã³²Êª¤È¤¤¤¦¼ïÎà¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ì¤Ð¡¢¤¹¤Ù¤Æ¶¦Ä̤¹¤ë½èÍý¤Ë¤è¤Ã¤ÆÆ°ºî¤¹¤ë¤è¤¦¤ËÀ߷פ·¡¢¼ÂÁõ¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢¾ã³²Êª¤È¤·¤Æ»ý¤¿¤»¤¿¤¤Ìò³ä¤òÌÀ³Î²½¤·¡¢¤½¤ì¤ò£±¤Ä¤Î¥¯¥é¥¹¤Ë¤Þ¤È¤á¤Þ¤¹¡£
Î㤨¤Ð¡¢¥×¥ì¥¤¥ä¡¼¤È¾ã³²Êª¤È¤ÎÀÜ¿¨¤ÎȽÄê¡¢¾ã³²Êª¤ËÀÜ¿¨¤·¤¿¾ì¹ç¤Î½èÍý¡¢¤Ê¤É¤Ç¤¹¡£
¡¡¤³¤ì¤Ï¡¢¤¤¤º¤ì¤Î¾ã³²Êª¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¯¥é¥¹¤Ç¤âƱÍͤνèÍý¤òµ½Ò¤¹¤ë¤³¤È¤¬ÁÛÄꤵ¤ì¤Þ¤¹¤Î¤Ç¡¢
¶¦Ä̤¹¤ë½èÍý¤ò¤Þ¤È¤á¤Æ£±¤Ä¤Î¥¯¥é¥¹(¿Æ¥¯¥é¥¹)¤Ëµ½Ò¤·¡¢¤½¤Î¿Æ¥¯¥é¥¹¤ò·Ñ¾µ¤¹¤ë·Á¤Ç¡¢½èÍý¤ò¶¦Ä̲½¤·¤Æ¼ÂÁõ¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤¤Þ¤¹¡£
¡¡¥¤¥á¡¼¥¸¤·¤ä¤¹¤¤¤è¤¦¤Ë¡¢¤³¤ì¤«¤éºîÀ®¤¹¤ë¥¯¥é¥¹¤Î´Ø·¸¤ò¿Þ¤Ë¼¨¤·¤Þ¤¹¡£
¡ã¥¯¥é¥¹¿Þ¡ä

»²¹Í¥µ¥¤¥È
MicroSoft
·Ñ¾µ
https://docs.microsoft.com/ja-jp/dotnet/csharp/fun...
¡¡ºÇ¤âºÇ¾åÃʤˤ¢¤ë¥¯¥é¥¹¤Ï ObstacleBase ¥¯¥é¥¹¤Ç¤¹¡£°ìÈ֤Υ¹¥¿¡¼¥ÈÃÏÅÀ¤Ë¤Ê¤ë¥¯¥é¥¹¤ò¿Æ¥¯¥é¥¹¡¢¤¢¤ë¤¤¤Ï´ð´´¥¯¥é¥¹(¥¹¡¼¥Ñ¡¼¥¯¥é¥¹)¤È¸Æ¤Ó¤Þ¤¹¡£
¤³¤Î¥¯¥é¥¹¤Ï MonoBehaviour ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤Þ¤¹¡£
¡¡ObstacleBase ¥¯¥é¥¹¤Ï abstract ½¤¾þ»Ò¤òÍѤ¤¤¿Ãê¾Ý¥¯¥é¥¹¤È¤·¤ÆºîÀ®¤ò¤·¤Æ¤¤¤Þ¤¹¡£
Ãê¾Ý¥¯¥é¥¹¤Ï¡¢¤½¤ìñÂΤǤϥ¤¥ó¥¹¥¿¥ó¥¹¤¬ºîÀ®¤Ç¤¤Ê¤¤¥¯¥é¥¹¤Ç¤¹¡£¤Ä¤Þ¤ê¡¢¤¤¤º¤ì¤«¤Î¥¯¥é¥¹¤Ë·Ñ¾µ¤µ¤»¤ëÁ°Äó¤ÇÀ߷פò¹Ô¤¦¥¯¥é¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡ObstacleBase ¥¯¥é¥¹¤Ç¤Ï¡¢¤¹¤Ù¤Æ¤Î¾ã³²Êª¤ËɬÍפÊÊÑ¿ô¤ä¥á¥½¥Ã¥É¤òºîÀ®¤·¡¢¾ã³²Êª¤È¤·¤Æ¤ÎÌò³ä¤ò¶¦Ä̲½¤µ¤»¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¸Ä¡¹¤Î¾ã³²Êª¤ËÊÌÅÓÈ÷¤¨¤¿¤¤µ¡Ç½(ÊÑ¿ô¤ä¥á¥½¥Ã¥É)¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤³¤Î ObstacleBase ¥¯¥é¥¹¤Ë¤ÏÄêµÁ¤·¤Þ¤»¤ó¡£
¡¡¶¦Ä̤¹¤ë½èÍý¤¬µ½Ò¤µ¤ì¤¿ ObstacleBase ¥¯¥é¥¹¤ò¿Æ¥¯¥é¥¹¤È¤·¤Æ·Ñ¾µ¤¹¤ë¤³¤È¤Ç¡¢¸Ä¡¹¤Î¾ã³²ÊªÍѤΥ¯¥é¥¹¤ò»Ò¥¯¥é¥¹¤È¤·¤ÆºîÀ®¤·¤Þ¤¹¡£
¡¡À߷פȼÂÁõ¤Ë¤¢¤¿¤ê¡¢Á´ÂΤÎÀ߷פ¬´°Î»¤·¤¿¤é¡¢¤Þ¤º¤Ï·Ñ¾µ¸µ(¿Æ)¤È¤Ê¤ë ObstacleBase ¥¯¥é¥¹¤«¤é½çÈ֤˺îÀ®¤·¤Æ¤¤¤¯¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡ObstacleBase ¥¯¥é¥¹¤òºîÀ®¤·¤¿¤é¡¢¤½¤ì¤ò·Ñ¾µ¤µ¤»¤¿ MovingObstacle ¥¯¥é¥¹¤ò»Ò¥¯¥é¥¹¤È¤·¤ÆºîÀ®¤·¤Þ¤¹¡£
¼ÂºÝ¤Ë¤Ï¤³¤Î MovingObstacle ¥¯¥é¥¹¤¬¡¢¾ã³²Êª¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¤¿¤á¤Î¥¯¥é¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡º£²ó¿Æ¤È¤Ê¤ë¥¯¥é¥¹¤Ï MonoBehaviour ¤ò·Ñ¾µ¤·¤¿¥¯¥é¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤¬¤¹¤Ù¤Æ¤Î¾ã³²Êª¤Î¿Æ¤È¤Ê¤ë¥¯¥é¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£
¿Æ¥¯¥é¥¹¤ÏÄ̾ïÄ̤ꡢ¿·¤·¤¤C#¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¤¤¤¯¼ê½ç¤Çºî¤Ã¤Æ¤¤¤¤Þ¤¹¡£
¡¡»Ò¥¯¥é¥¹¤Ç¤Î¤ß¼ÂÁõ¤¬É¬ÍפʾðÊó¤È¡¢¿Æ¥¯¥é¥¹¤Ë¼ÂÁõ¤·¤Æ»Ò¥¯¥é¥¹Á´ÂΤǶ¦Ä̲½¤·¤ÆÍøÍѤ·¤¿¤¤¾ðÊó¤È¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç
¤Þ¤º¤Ï¤½¤ÎÀÚ¤êʬ¤±¤ò¹Ô¤Ã¤Æ¡¢¶¦Ä̲½¤Ç¤¤ë¤â¤Î¤Î¤ß¤ò¿Æ¥¯¥é¥¹¤ËÍÑ°Õ¤·¤Þ¤¹¡£
¡¡¡¦¾ã³²Êª¤Î½é´üÀßÄê ¡¡¡¦¥×¥ì¥¤¥ä¡¼¤È¾ã³²Êª¤È¤¬ÀÜ¿¨¤·¤¿ºÝ¤Î½èÍý
¡¡¤³¤ÎÊÕ¤ê¤Ï¡¢¶¦Ä̲½¤Ç¤¤ë½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤Ç¤¹¤¬¡¢
¡¡¡¦¾ã³²Êª¤Î¸ú²Ì¤òŬÍѤ¹¤ë ¡¡¡¦¥¨¥Õ¥§¥¯¥È¤òÀ¸À®¤¹¤ë
¡¡¤³¤Î£²¤Ä¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤ì¤¾¤ì¤Î¾ã³²Êª¤Ë¤è¤Ã¤ÆÆâÍƤ¬°Û¤Ê¤ë²ÄǽÀ¤¬¹â¤¤¤¿¤á¡¢
¿Æ¥¯¥é¥¹¤Ë¶¦Ä̲½¤·¤Æ½èÍý¤òºî¤Ã¤¿¾å¤Ç¡¢»Ò¥¯¥é¥¹¤Ç¤½¤ì¤¾¤ì¤Î¾ã³²Êª¤ÎÆâÍƤ˱褦ÆâÍƤ˽¤Àµ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¡¡¤³¤Î¤è¤¦¤ËÀÚ¤êʬ¤±¤¿½èÍý¤Î¼ÂÁõ¤¬²Äǽ¤Ë¤Ê¤ë¤³¤È¤¬¡¢¥¯¥é¥¹¤Î·Ñ¾µ¤Ë¤è¤ëÂ礤ʥá¥ê¥Ã¥È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¿Æ¥¯¥é¥¹¤Ëµ½Ò¤¹¤ëÆâÍƤϡ¢Ä̾ï¤Î¥¯¥é¥¹¤ÈƱ¤¸¤è¤¦¤ËÊÑ¿ô¤ÎÀë¸À¤È¥á¥½¥Ã¥É¤ÎºîÀ®¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢µ½Ò¤¹¤ë½ñ¼°¤¬¤¤¤¯¤Ä¤«ÊѤï¤ê¤Þ¤¹¡£
¡¡ÊÑ¿ô¤ä¥á¥½¥Ã¥É¤ÎÀë¸À¤Ë¤ª¤¤¤Æ private ½¤¾þ»Ò¤òÍøÍѤ¹¤ëÉôʬ¤Ë¤Ï¡¢Âå¤ï¤ê¤Ë protected ½¤¾þ»Ò¤ò»ÈÍѤ·¤Þ¤¹¡£
¤³¤ì¤Ï·Ñ¾µ¤·¤¿¥¯¥é¥¹´Ö¤Ç¤Î¤ß»ÈÍѤǤ¤ë¤³¤È¤òµö²Ä¤¹¤ë½¤¾þ»Ò¤Ç¤¹¡£
³°Éô¤ÇÍøÍѤ·¤¿¤¤ÊÑ¿ô¤ä¥á¥½¥Ã¥É¤Î¾ì¹ç¤Ë¤Ï¡¢Ä̾ïÄ̤ê public ½¤¾þ»Ò¤ò»ÈÍѤ·¤Þ¤¹¡£
¡¡¤Þ¤¿¥á¥½¥Ã¥É¤Î¾ì¹ç¤Ë¤Ï¡¢Àë¸À»þ¤Ë virtual ¥¡¼¥ï¡¼¥É¤òµ½Ò¤·¤Þ¤¹¡£¤³¤¦¤¹¤ë¤³¤È¤Ç»Ò¥¯¥é¥¹¤¬¾å½ñ¤²Äǽ¤Ê¡¢¿Æ¥¯¥é¥¹¤Î¥á¥½¥Ã¥É¤È¤·¤ÆÀ®Î©¤·¤Þ¤¹¡£
¡¡¿Æ¥¯¥é¥¹¤ÇÀßÄꤵ¤ì¤¿¥¢¥¯¥»¥¹½¤¾þ»Ò¤Î¾ðÊó¤Ï»Ò¥¯¥é¥¹¤Ç¤â°ú¤·Ñ¤¬¤ì¤Þ¤¹¡£
Î㤨¤Ð¿Æ¥¯¥é¥¹¤Ç public float x ¤òºîÀ®¤·¤Æ¤¤¤ì¤Ð¡¢¤½¤ì¤Ï»Ò¥¯¥é¥¹¤Ç¤â public float x ¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£
¥á¥½¥Ã¥É¤âƱÍͤǤ¹¡£
¡¡abstract ½¤¾þ»Ò¤ò¥¯¥é¥¹¤ÎÀë¸À¤ËÄɲ乤뤳¤È¤Ç¡¢Ãê¾Ý¥¯¥é¥¹¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡ãÃê¾Ý¥¯¥é¥¹¡ä
¡¡/// <summary> ¡¡/// ¾ã³²Êª¶¦ÄÌÍѤÎÃê¾Ý¥¯¥é¥¹ ¡¡/// </summary> ¡¡public abstract class ObstacleBase : MonoBehaviour
¡¡Ãê¾Ý¥¯¥é¥¹¤È¤Ï¥¤¥ó¥¹¥¿¥ó¥¹¤ÎºîÀ®¤Ç¤¤Ê¤¤(new ¤Ç¤¤Ê¤¤)¥¯¥é¥¹¤Ç¤¹¡£·Ñ¾µ¤ò¹Ô¤¦Á°Äó¤ÇºîÀ®¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¹¤Î¤³¤È¤ò¸À¤¤¤Þ¤¹¡£
Ãê¾Ý¥¯¥é¥¹Æâ¤Ë¤ÏÃê¾Ý¥á¥½¥Ã¥É¤ò£±¤Ä°Ê¾åÀë¸À¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£Ä̾ï¤Î¥¯¥é¥¹¤ÈƱ¤¸¤è¤¦¤Ë¡¢private ½¤¾þ»Ò¤ä public ½¤¾þ»Ò¤ò»È¤Ã¤ÆÊÑ¿ô¤ä¥á¥½¥Ã¥É¤ò¼ÂÁõ¤¹¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£
¡¡¥á¥½¥Ã¥É¤ÎÀë¸À¤Ë abstract ½¤¾þ»Ò¤òÄɲ乤뤳¤È¤ÇÃê¾Ý¥á¥½¥Ã¥É¤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤³¤ì¤ÏÃæ¿È¤Î¤Ê¤¤(½èÍý¤Î¼ÂÂΤΤʤ¤)¥á¥½¥Ã¥É¤Ç¤¢¤ë¤¿¤á¡¢·Ñ¾µ¤·¤¿ÇÉÀ¸(»Ò)¥¯¥é¥¹Æâ¤Ë¤ª¤¤¤Æ¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤òÁ°Äó¤È¤·¤ÆºîÀ®¤µ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£
¡ãÃê¾Ý¥á¥½¥Ã¥É¡ä
/// <summary> /// ½é´üÀßÄê /// </summary> public abstract void SetUpObstacle();
¡¡Ãê¾Ý¥á¥½¥Ã¥É¤ÏÃê¾Ý¥¯¥é¥¹Æâ¤Ç¤·¤«ºîÀ®¤Ç¤¤Þ¤»¤ó¡£
¤Þ¤¿Ãê¾Ý¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ë»Ò¥¯¥é¥¹¤Ç¤Ïɬ¤º¡¢¤¹¤Ù¤Æ¤ÎÃê¾Ý¥á¥½¥Ã¥É¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Æ¼ÂÁõ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
Ãê¾Ý¥á¥½¥Ã¥É¤Ë¤è¤ê¡¢¥á¥½¥Ã¥É¤Ë¤Ï¿ÂÖÀ¤¬À¸¤Þ¤ì¤Þ¤¹¡£
¡¡¤³¤Îµ¡Ç½¤òÍѤ¤¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¼ÂÁõ¤Î»ÅÊý(¥á¥½¥Ã¥É¤Î¶¯À©)¤òÅý°ì¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢ObstacleBase ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤¿¥¯¥é¥¹¤Ç¤Ï¡¢É¬¤º¡¢Ãê¾Ý¥á¥½¥Ã¥É¤Ç¤¢¤ë SetUpObstacle ¥á¥½¥Ã¥É¤È TriggerObstacle ¥á¥½¥Ã¥É¤Î£²¤Ä¤ò¼ÂÁõ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢
¤³¤Î½èÍý¤òÄ̤¸¤Æ¾ã³²Êª¤Î½é´üÀßÄê¤ò¹Ô¤¤¡¢¥×¥ì¥¤¥ä¡¼¤È¾ã³²Êª¤È¤¬ÀÜ¿¨¤·¤¿¸å¤Î½èÍý¤Ë¤Ä¤¤¤Æ¡¢¤¹¤Ù¤Æ¤Î¾ã³²Êª¤Ë¤ª¤¤¤ÆƱ¤¸½èÍý¤Îή¤ì¤ÇÀ©¸æ¤·¤Æ¤¤¤¯¤È¤¤¤¦À߷פǼÂÁõ¤Ç¤¤Þ¤¹¡£
¡¡¼ÂÁõ¤·¤¿Ãê¾Ý¥á¥½¥Ã¥É¤Ç¤Ï¡¢»Ò¥¯¥é¥¹¤¬¤½¤ì¤¾¤ì¤Î½èÍý¤ò¼ÂÁõ(³ÎÄê)¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¥×¥í¥°¥é¥à¤Î¿ÂÖÀ(¥Ý¥ê¥â¡¼¥Õ¥£¥º¥à)¤ò¼Â¸½½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡ã»²¹Í¥µ¥¤¥È¡ä
MicroSoft
abstract
https://docs.microsoft.com/ja-jp/dotnet/csharp/lan...
++C++; // ̤³ÎǧÈô¹Ô C ÍÍ
Ãê¾Ý¥á¥½¥Ã¥É¡¢Ãê¾Ý¥¯¥é¥¹
https://ufcpp.net/study/csharp/oo_abstract.html
.NET Column ÍÍ
C#¤Îabstract class¤È¤Ï¡©¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ë¤Ä¤¤¤Æ¤âÊ»¤»¤Æ²òÀ⡪
https://www.fenet.jp/dotnet/column/language/c-shar...
XR-HU3 ÍÍ
[Âè14²ó] Ãê¾Ý¥¯¥é¥¹¡Êabstract¡Ë¤Î»È¤¤Êý¤ò³Ø¤Ö¡ÃUnity¤Ç³Ø¤ÖC#ÆþÌç
https://xr-hub.com/archives/19842
¡¡¿Æ¥¯¥é¥¹¤Ë¤ª¤¤¤ÆÄêµÁ¤·¤¿¥á¥½¥Ã¥É¤Ï¡¢virtual (²¾ÁÛ) ¥¡¼¥ï¡¼¥É¤ò°ì½ï¤ËÀë¸À¤¹¤ë¤³¤È¤Ç¡¢ÇÉÀ¸(»Ò)¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¥ª¡¼¥Ð¡¼¥é¥¤¥É½èÍý¤ò¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬µö²Ä¤µ¤ì¤Þ¤¹¡£
¤³¤Îµ¡Ç½¤òͤ·¤Æ¤¤¤ë¥á¥½¥Ã¥É¤ò²¾Áۥ᥽¥Ã¥É¤È¤¤¤¤¤Þ¤¹¡£Ãê¾Ý¥á¥½¥Ã¥É¤ÈƱ¤¸¤è¤¦¤Ë¡¢²¾Áۥ᥽¥Ã¥É¤Ë¤è¤ê¡¢¥á¥½¥Ã¥É¤Ë¤Ï¿ÂÖÀ¤¬À¸¤Þ¤ì¤Þ¤¹¡£
¡ã¿Æ¥¯¥é¥¹¤Ë¤¢¤ë²¾Áۥ᥽¥Ã¥É¡ä
/// <summary> /// ¥×¥ì¥¤¥ä¡¼¤È¾ã³²Êª¤È¤¬ÀÜ¿¨¤·¤¿»þ¤Î½èÍý /// </summary> public virtual void TriggerObstacle() { // TODO »Ä¤ê»þ´Ö¤ò¸º¤é¤·¤¿¤ê¡¢¥¹¥¿¡¼¥ÈÃÏÅÀ¤ØÌ᤹¤È¤¤¤Ã¤¿¥Ú¥Ê¥ë¥Æ¥£¤È¤Ê¤ë½èÍý¤ò¾ã³²Êª¤´¤È¤Ë½ñ¤¯ }
¡¡virtual ¥¡¼¥ï¡¼¥É¤Î¤Ê¤¤¥á¥½¥Ã¥É(Ä̾ï¤Î¥á¥½¥Ã¥É)¤Ï²¾Áۥ᥽¥Ã¥É¤Ç¤Ï¤Ê¤¤¤¿¤á¡¢½èÍý¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤¹¤ë¤³¤È¤Ï½ÐÍè¤Þ¤»¤ó¡£
¡ã³Æ¥¡¼¥ï¡¼¥É¤Î´Ø·¸À¡ä
¡¡virtual => override ¤Ç¤¤ë abstract => override ¤Ç¤¤ë
¡¡º£²ó¤Î ObstacleBase ¥¯¥é¥¹¤Ë¤Ï¡¢Ãê¾Ý¥á¥½¥Ã¥É¤È²¾Áۥ᥽¥Ã¥É¤ÎξÊý¤¬º®ºß¤·¤Æ¤¤¤Þ¤¹¡£
¤É¤Á¤é¤â»Ò¥¯¥é¥¹¤Ë¤ª¤¤¤Æ½èÍý¤ò¼ÂÁõ¤¹¤ë¤È¤¤¤¦Éôʬ¤Ç¤ÏƱ¤¸¤Ç¤¹¤¬¡¢Ãê¾Ý¥á¥½¥Ã¥É¤ÎÊý¤Ï¡¢»Ò¥¯¥é¥¹Æâ¤Ëɬ¤ºÄêµÁ¤·¤Æ¼ÂÁõ¤ò¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
¡¡SetUpObstacle ¥á¥½¥Ã¥É¤òÃê¾Ý(abstract)¥á¥½¥Ã¥É¤Ë¤·¤Æ¤¤¤ë¤Î¤Ï¡¢¾ã³²Êª¤Î½é´üÀßÄê¤Ë¤Ä¤¤¤Æ¤Ï¡¢É¬¤º»Ò¥¯¥é¥¹¤Ëµ½Ò¤·¤Æ¤¯¤À¤µ¤¤¤È¶¯À©¤·¤¿¤¤¤¿¤á¤Ç¤¹¡£
TriggerObstacle ¥á¥½¥Ã¥É¤ò²¾ÁÛ(virtual)¥á¥½¥Ã¥É¤Ë¤·¤Æ¤¤¤ë¤Î¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤È¾ã³²Êª¤È¤ÎÀÜ¿¨È½Äê¤Ë¤Ä¤¤¤Æ¤ÏÉÔÍפʻҥ¯¥é¥¹¤â¤¢¤ë²ÄǽÀ¤¬¤¢¤ë¤¿¤á¡¢¶¯À©¤·¤Æ¼ÂÁõ¤·¤¿¤¯¤Ê¤¤¤¿¤á¤Ç¤¹¡£
¡¡
¡¡¼«Ê¬¤Ç½èÍý¤òºî¤ë¾ì¹ç¤Ë¤Ï¡¢¤Þ¤º¤Ï¤¹¤Ù¤Æ¤ò virtual ¥á¥½¥Ã¥É¤Ë¤·¤Æ¤ª¤¤¤Æ¡¢¤½¤Î¸å¡¢¤¹¤Ù¤Æ¤Î¾ã³²Êª¤ËÍøÍѤ·¤Æ¤¤¤ë¥á¥½¥Ã¥É¤¬¤¢¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢
¤½¤Î¥á¥½¥Ã¥É¤ò abstract ¥á¥½¥Ã¥É¤ËÊѤ¨¤Æ¤¤¤¯¤è¤¦¤Ë¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£¥×¥í¥°¥é¥à¤Ë¤ª¤¤¤Æ¤Ï¡¢»î¤·¤Æ¤ß¤Æ¡¢¼«Ê¬¤ÇÂ賤·¤Æ¤ß¤ë¤³¤È¤¬¤È¤Æ¤â³Ø½¬¤Ë¤Ê¤ê¤Þ¤¹¡£
MicroSoft
virtual (C# ¥ê¥Õ¥¡¥ì¥ó¥¹)
https://docs.microsoft.com/ja-jp/dotnet/csharp/lan...
¡¡¼ÂºÝ¤Ë°ÜÆ°¤¹¤ë¾ã³²ÊªÍѤΥ¯¥é¥¹¤È¤·¤Æ¡¢MovingObstacle ¥¯¥é¥¹¤ÎÀ߷פò¹Ô¤¤¤Þ¤¹¡£
¤³¤Î¥¯¥é¥¹¤Ï MonoBehaviour ¥¯¥é¥¹¤ÎÂå¤ï¤ê¤Ë ObstacleBase ¥¯¥é¥¹¤ò·Ñ¾µ¤µ¤»¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤Ã¤Æ¿Æ¥¯¥é¥¹ ObstacleBase ¡¢»Ò¥¯¥é¥¹ MovingObstacle ¤È¤¤¤¦´ØÏ¢À¤¬À¸¤Þ¤ì¤Þ¤¹¡£
¡¡¥¯¥é¥¹¤Î·Ñ¾µ¤Ï¡¢¥¯¥é¥¹Ì¾¤Î±¦Â¦¤Ë : (¥³¥í¥ó)¤ò½ñ¤¡¢¤½¤Î±¦Â¦¤Ë·Ñ¾µ¤µ¤»¤ë¥¯¥é¥¹Ì¾¤ò½ñ¤¤Þ¤¹¡£
public class MovingObstacle : ObstacleBase
¡¡¤Ê¤ª¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¤Î¤Ï»Ò¥¯¥é¥¹¡Ê¤³¤³¤Ç¤Ï MovingObstacle ¡Ë¤Î¤ß¤ÇÂç¾æÉפǤ¹¡£
·Ñ¾µ¸µ¤Ç¤¢¤ë¿Æ¥¯¥é¥¹¤òÊÌÅÓ¥¢¥¿¥Ã¥Á¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£¿Æ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¤½¤Î·Ñ¾µ¸µ¤Îµ¡Ç½¤â»Ò¥¯¥é¥¹¤Ïͤ·¤Æ¤¤¤ë¤¿¤á¤Ç¤¹¡£
¡¡Unity ¤Ë¤ª¤¤¤ÆÍøÍѤ¹¤ëµ¡²ñ¤Î¿¤¤ MonoBehaviour ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ë¥¹¥¯¥ê¥×¥È(¿·¤·¤¯¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë¤È¼«Æ°Åª¤Ë·Ñ¾µ¤·¤Æ¤¤¤ë¥¯¥é¥¹)¤â¡¢
MonoBehaviour ¤È¤¤¤¦¥¯¥é¥¹¼«ÂΤϥ¢¥¿¥Ã¥Á¤·¤Æ¤¤¤Þ¤»¤ó¤¬¡¢MonoBehaviour ¥¯¥é¥¹¤Î»ý¤Ä Start ¥á¥½¥Ã¥É¤Ê¤É¤¬Í¸ú¤ËÆ°¤¯¤Î¤Ï¡¢¤³¤Î¥¯¥é¥¹¤Î·Ñ¾µ¤È¤¤¤¦µ¡Ç½¤Ë¤è¤ë¤â¤Î¤Ç¤¹¡£
¡¡
¡¡¥¯¥é¥¹¤ò·Ñ¾µ¤·¤¿¾ì¹ç¡¢·Ñ¾µ¤·¤Æ¤¤¤ë¿Æ¥¯¥é¥¹(º£²ó¤Ç¤¢¤ì¤Ð ObstacleBase ¥¯¥é¥¹)¤Î·Ñ¾µ¤·¤Æ¤¤¤ë¥¯¥é¥¹¤â°ú¤Â³¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¤³¤ì¤«¤éºîÀ®¤¹¤ë MovingObstacle ¥¯¥é¥¹¤Ï MonoBehaivour ¥¯¥é¥¹¤È ObstacleBase ¥¯¥é¥¹¤Î£²¤Ä¤Î¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ë¥¯¥é¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡MonoBehaivour ¥¯¥é¥¹¤¬·Ñ¾µ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Start ¥á¥½¥Ã¥É¤ä OnTrigger ¡Á ¥á¥½¥Ã¥É¤âÍøÍѤǤ¤Þ¤¹¤·¡¢
¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£¼ÂºÝ¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¥¯¥é¥¹¤¬ MovingObstacle ¥¯¥é¥¹¤Î¤ß¤Ç¤è¤¤Íýͳ¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¼ÂÁõÎã¤ò£²¤ÄÄ󼨤·¤Þ¤¹¡£
¡¡£±¤Ä¤Ï NavMeshAgent ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÍøÍѤ·¤Æ¡¢¾ã³²Êª¤Î°ÜÆ°¤ò¹Ô¤ï¤»¤ë¥¯¥é¥¹¤Ç¤¹¡£
Á°²ó¤Î¼ê½ç¤Ç°ÜÆ°·ÐÏ©ÍѤξðÊó¤ò Bake ¤·¤Æ NavMeshAgent ¤òÍøÍѤǤ¤ë¾õÂ֤ˤ·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢´ðËÜŪ¤Ë¤Ï¤³¤Á¤é¤Ç¤Î¼ÂÁõ¤ò¹Í¤¨¤Æ¤¯¤À¤µ¤¤¡£
¡¡
¡¡¤â¤¦£±¤Ä¤Ï NavMeshAgent ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ç¤Ï¤Ê¤¯¤Æ¡¢DOTween ¤Ë¤è¤ê¡¢¾ã³²Êª¤Î°ÜÆ°¤ò¹Ô¤ï¤»¤ë¥¯¥é¥¹¤Ç¤¹¡£
¡ãoverride(¥ª¡¼¥Ð¡¼¥é¥¤¥É) ¥¡¼¥ï¡¼¥É¡¡¥¯¥é¥¹¤Î·Ñ¾µ»þ¤ËÍøÍѤǤ¤ë¡¢²¾ÁÛ(Ãê¾Ý)¥á¥½¥Ã¥É¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É½èÍý¡¡¡¼Â¿ÂÖÀ(¥Ý¥ê¥â¡¼¥Õ¥£¥º¥à)¡¼¡ä 
¡¡abstract ¥¡¼¥ï¡¼¥É¤Ë¤è¤ëÃê¾Ý¼ÂÁõ¤ä¡¢virtual ¥¡¼¥ï¡¼¥É¤Ë¤è¤ë²¾ÁÛ¼ÂÁõ¤ËÂФ·¤Æ¼Â¹Ô¤Ç¤¤ëµ¡Ç½¤Ç¤¹¡£
¾åµ¤Î£²¤Ä¤Î¥¡¼¥ï¡¼¥É¤ò»ý¤Ä¥á¥½¥Ã¥É¤ËÂФ·¤Æ¡¢¾åµÉôʬ¤ò override ¤ËÊѹ¹¤¹¤ë¤³¤È¤Ç¡¢½èÍý¤ò³ÈÄ¥¤·¤¿¤ê¡¢½ñ¤´¹¤¨¤¿¤ê¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¤³¤Î¤È¤¡¢¥á¥½¥Ã¥É¤Î¥¢¥¯¥»¥¹½¤¾þ»Ò¤òÊѹ¹¤¹¤ë¤³¤È¤Ï½ÐÍè¤Þ¤»¤ó¡£
Î㤨¤Ð¡¢protected virtual ¥á¥½¥Ã¥É¤Ç¤¢¤ì¤Ð¡¢protected override ¥á¥½¥Ã¥É¤Î¤è¤¦¤Ë¡¢¤¢¤¯¤Þ¤Ç¤âƱ¤¸¥¢¥¯¥»¥¹½¤¾þ»Ò¤Ç¤Î¼ÂÁõ¤Ë¤Ê¤ê¤Þ¤¹¡£
¡ã¿Æ¥¯¥é¥¹¤Ë¤¢¤ëÃê¾Ý¥á¥½¥Ã¥É¡ä
/// <summary> /// ½é´üÀßÄê /// </summary> public abstract void SetUpObstacle();
¡¡¢¡¡
¡ãÇÉÀ¸(»Ò)¥¯¥é¥¹¤Ç¤Î¥ª¡¼¥Ð¡¼¥é¥¤¥É¼ÂÁõ¡ä
/// <summary> /// ½é´üÀßÄê /// </summary> public override void SetUpObstacle() { if (TryGetComponent(out agent)) { StartCoroutine(MoveObstacleByAgent()); } }
¡¡¥ª¡¼¥Ð¡¼¥é¥¤¥É¤È¤¤¤¦Ã±¸ì¤Î»ý¤Ä°ÕÌ£¤ÎÄ̤ê¤Ç¡¢¤³¤Î½èÍý¤ò¹Ô¤Ã¤¿¿Æ¥¯¥é¥¹Â¦¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤¿Ãê¾Ý/²¾Áۥ᥽¥Ã¥ÉÆâ¤Î½èÍý¤Ï¾å½ñ¤¤Þ¤¹¡£
Æä˿ƥ¯¥é¥¹¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë²¾Áۥ᥽¥Ã¥ÉÆâ¤Î½èÍý¤âÍøÍѤ·¤¿¾å¤Ç¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤¿¤¤¾ì¹ç¡¢base ¥¡¼¥ï¡¼¥É¤òÍøÍѤ·¤Þ¤¹¡£¤³¤Á¤é¤Ï¼¡¤ËÀâÌÀ¤·¤Þ¤¹¡£
¡¡¿Æ¥¯¥é¥¹¤Ë¤¢¤ë virtual ¥¡¼¥ï¡¼¥É¡¢¤¢¤ë¤¤¤Ï abstract ¥¡¼¥ï¡¼¥É¤È override ¥¡¼¥ï¡¼¥É¤È¤Ï¡¢£±ÂУ±¤Ç¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ë¥¤¥á¡¼¥¸¤Ç¤¹¡£
¡¡¤³¤³¤Þ¤Ç¤Ë¼ÂÁõ¤·¤Æ¤¤¤ë²¾ÁÛ(Ãê¾Ý)¥á¥½¥Ã¥É¤È¡¢¤½¤ì¤ò¾å½ñ¤¤¹¤ë¥ª¡¼¥Ð¡¼¥é¥¤¥É½èÍýµ¡Ç½¤Ë¤è¤ê¡¢
Ʊ¤¸¥á¥½¥Ã¥É¤Ç¤¢¤Ã¤Æ¤â¡¢½èÍý¤ÎÆâÍƤò¼«Æ°Åª¤ËÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤è¤Ã¤Æ¡¢Æ±¤¸¥á¥½¥Ã¥É¤Ë¤â¤«¤«¤ï¤é¤º¡¢½èÍý¤Î¿¶¤ëÉñ¤¤(ÆâÍÆ)¤¬¼«Æ°Åª¤ËÊѤï¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤³¤Î¤è¤¦¤Ë¡¢Æ±¤¸¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤¿ºÝ¤Ë¡¢°Û¤Ê¤ë¥ª¥Ö¥¸¥§¥¯¥È¤¬°Û¤Ê¤ëÆ°ºî¤ò¹Ô¤¤¡¢¿¶¤ëÉñ¤¤¤ò¼«Æ°Åª¤ËÊѲ½¤µ¤»¤ëÆÃÀ¤ò¿ÂÖÀ(¥Ý¥ê¥â¡¼¥Õ¥£¥º¥à)¤È¤¤¤¤¤Þ¤¹¡£
¡¡¥¯¥é¥¹¤Î·Ñ¾µ¤È¹ç¤ï¤»¤Æ¡¢¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥×¥í¥°¥é¥ß¥ó¥°¤Î½ÅÍפʳµÇ°¤Ë¤Ê¤ê¤Þ¤¹¡£
¿¤¯¤Îµ»ö¤¬¥Í¥Ã¥È¾å¤Ë¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¼«Ê¬¤Ç¤âÄ´¤Ù¤Æ¡¢Íý²ò¤ò¿¼¤á¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
¡ã»²¹Í¥µ¥¤¥È¡ä
MicroSoft
override (C# ¥ê¥Õ¥¡¥ì¥ó¥¹)
https://docs.microsoft.com/ja-jp/dotnet/csharp/lan...
MicroSoft
¥Ý¥ê¥â¡¼¥Õ¥£¥º¥à
https://docs.microsoft.com/ja-jp/dotnet/csharp/fun...
¡¡NavMeshAgent ¥¯¥é¥¹¤Ë¤Ï¿¤¯¤ÎÊÑ¿ô¤È¥á¥½¥Ã¥É¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤³¤Îµ¡Ç½¤ò¾å¼ê¤¯³èÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¢AI ¤Ë¤è¤ë NavMeshAgent ¤Î¥ë¡¼¥È¤Î¼«Æ°°ÜÆ°¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡NavMeshAgent ·¿¤ò¥¹¥¯¥ê¥×¥ÈÆâ¤ÇÀë¸À¤·¡¢³ÆÊÑ¿ô¤ä¥á¥½¥Ã¥É¤òÍøÍѤ¹¤ë¤¿¤á¤Ë¤Ï using UnityEngine.AI; ¤ÎÀë¸À¤¬É¬ÍפǤ¹¡£
¡¡NavMeshAgent ÌÜɸÃÏÅÀ¤òÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤¤ë Vector3 ·¿¤ÎÊÑ¿ô¤Ç¤¹¡£
¤³¤Î¾ðÊó¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ç¡¢NavMeshAgent ¤ËÌÜŪÃϤذÜÆ°¤¹¤ë¤³¤È¤òÅÁ¤¨¡¢°ÜÆ°¤ò³«»Ï¤µ¤»¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡ã»²¹Í¥µ¥¤¥È¡ä
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
NavMeshAgent.destination
https://docs.unity3d.com/jp/current/ScriptReferenc...
Unity ¸ø¼°¥Þ¥Ë¥å¥¢¥ë
NavMeshAgent ¤ËÌÜŪÃϤذÜÆ°¤¹¤ë¤³¤È¤òÅÁ¤¨¤ë
https://docs.unity3d.com/ja/current/Manual/nav-Mov...
¡¡NavMeshAgent ¤Ë¤è¤ë¥ë¡¼¥È°ÜÆ°»þ¤ÎºÇÂç®ÅÙ¤ÎÀßÄêÃͤǤ¹¡£0 ¤Ë¤¹¤ë¤³¤È¤Ç°ÜÆ°¤ÏÄä»ß¤·¤Þ¤¹¡£
¡ã»²¹Í¥µ¥¤¥È¡ä
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
NavMeshAgent.speed
https://docs.unity3d.com/jp/current/ScriptReferenc...
¡¡NavMeshAgent ¤Ë¤è¤ë¸½ºß¤Î°Üư®ÅÙ¤ò¼¨¤·¤Þ¤¹¡£¤³¤ÎÃÍ¤Ï Vector3 ·¿¤Ç¤¢¤ë¤¿¤á¡¢Vector3 ·¿¤Ë¤Õ¤¯¤Þ¤ì¤Æ¤¤¤ë sqrMagnitude ÊÑ¿ô¤â°·¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
ÌÜŪÃÏÅÀ¤Ë¸þ¤±¤¿°ÜÆ°»þ¤Î¾×ÆͲóÈò¾ðÊó¤ä²Ã®ÅÙ¤ÎÀ©¸æ¤Ê¤É¤ò²ÃÌ£¤·¤¿¾å¤Ç¤Î°Üư®ÅÙ¤ò¼«Æ°Åª¤Ë¥·¥ß¥å¥ì¡¼¥È¤·¤Æ·×»»¤µ¤ì¤ÆÀßÄꤵ¤ì¤Þ¤¹¡£
¡¡°ÜÆ°¤òÄä»ß¤·¤Æ¤¤¤ë¤È¤¤Ï¡¢ velocity ¤Î³ÆÃÍ¤Ï 0 ¤Ë¤Ê¤ê¤Þ¤¹¡£
¡ã»²¹Í¥µ¥¤¥È¡ä
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
NavMeshAgent.velocity
https://docs.unity3d.com/ja/current/ScriptReferenc...
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Vector3
https://docs.unity3d.com/ja/current/ScriptReferenc...
¡¡¾ã³²ÊªÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬ NavMeshAgent ¤Îµ¡Ç½¤Ë¤è¤Ã¤Æ°ÜÆ°¤µ¤»¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
¤½¤ÎÌÜɸÃÏÅÀ¤È¤Ê¤ëÃÏÅÀ¤ò¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ»öÁ°¤ËÅÐÏ¿¤·¤Æ¤ª¤¤Þ¤¹¡£
¡¡Scene¥Ó¥å¡¼ ¤Î NavMeshAgent ¤¬°ÜÆ°²Äǽ¤ÊÈϰϾå¤Ë¡¢CreateEmpty ¤ò¹Ô¤¤¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÇÛÃÖ¤·¤Æ¤¯¤À¤µ¤¤¡£
¤³¤ì¤¬ÌÜɸÃÏÅÀ¤ÎºÂɸ¾ðÊó¤È¤·¤Æ°·¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¹¥¤¤Ê¿ô¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÇÛÃÖ¤·¤Æ¤¯¤À¤µ¤¤¡£
¤Þ¤¿¡¢¸½ºß¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬¤¤¤ëÃÏÅÀ¤Ë¤âÇÛÃÖ¤·¤Æ¤¯¤À¤µ¤¤¡£¤½¤¦¤¹¤ë¤³¤È¤Ç¡¢¥¹¥¿¡¼¥ÈÃÏÅÀ¤Ë¤âÌá¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡ºÇÄã¤Ç¤â£²¤Ä°Ê¾å¤ÎÃÏÅÀ¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡°ÜÆ°¤¹¤ë¾ã³²Êª¤È¤·¤Æ¤ÎÌò³ä¤ò»ý¤¿¤»¤¿¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¡¢MovingObstacle ¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£
RequireComponent °À¤¬ÉÕÍ¿¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢¼«Æ°Åª¤Ë NavMeshAgent ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Þ¤¹¡£
¡¡MovingObstacle ¥¹¥¯¥ê¥×¥È¤ÎÀßÄê¤Ë¤Ä¤¤¤Æ¤Ï¡¢°ÜÆ°ÍѤÎÀßÄê¤Î¤ß¤ò¹Ô¤¤¡¢Â¾¤ÎÉôʬ¤Ï¸åÄøÄɲä·¤Þ¤¹¡£
¡¡TargetTrans ÊÑ¿ô¤Ë¤Ï¡¢NavMeshAgent ¤ÎÌÜŪÃϤò½çÈÖ¤ËÀßÄꤷ¤Þ¤¹¡£
¡¡ÊÑ¿ô¤ÏÇÛÎó¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¹¥¤¤Ê¿ô¤Î Size ¤òÀßÄꤷ¡¢¤½¤Îʬ¤ÎÌÜɸÃÏÅÀ¤òÅÐÏ¿¤·¤Æ¤¯¤À¤µ¤¤¡£Element 0 ¤¬ºÇ½é¤ÎÌÜŪÃϤȤ·¤ÆÍøÍѤµ¤ì¤Þ¤¹¡£
ºÇÄã¤Ç¤â£²¤Ä¤ÎÇÛÎó¤ÏÍÑ°Õ¤·¡¢ºÇ¸å¤ÎÇÛÎó¤ÎÍ×ÁǤˤϥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¹¥¿¡¼¥ÈÃÏÅÀ¤òÅÐÏ¿¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢
¤°¤ë¤°¤ë¤ÈƱ¤¸¥ë¡¼¥È¤ò¼þ²ó¤¹¤ë¾ã³²Êª¤òºîÀ®¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡WaitTimes ÊÑ¿ô¤âÇÛÎó¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢TargetTrans ÊÑ¿ô¤Î Size ¤ÈƱ¤¸¿ô¤Î Size ¤ÇÀßÄꤷ¤Þ¤¹¡£
¤³¤ÎÃͤ¬ÌÜɸÃÏÅÀ¤ËÅþã¸å¤ÎÂÔµ¡»þ´Ö¤Ë¤Ê¤ê¤Þ¤¹¡£Ä¹¤¯¤È¤É¤Þ¤é¤»¤¿¤¤¾ì¹ç¤Ë¤Ï¿ô»ú¤òÂ礤¯¤·¡¢
ÌÜɸÃÏÅÀ¤ò¥¹¥ë¡¼¤·¤Æ¤¹¤°¤Ë¼¡¤ÎÌÜɸÃÏÅÀ¤Ë¸þ¤«¤ï¤»¤¿¤¤¾ì¹ç¤Ë¤Ï 0 ¤Ë¤·¤Æ¤ª¤¤Þ¤¹¡£
¤¹¤Ù¤Æ¤ÎÃÏÅÀ¤ò¥¹¥ë¡¼¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤âÌäÂꤢ¤ê¤Þ¤»¤ó¤¬¡¢¤½¤Î¾ì¹ç¤Ë¤âÇÛÎó¤òÍÑ°Õ¤·¤Æ¡¢³Æ Element ¤Ë 0 ¤òÅÐÏ¿¤·¤Æ¤¯¤À¤µ¤¤¡£
»²¹ÍÍÑ¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü

¡¡¥²¡¼¥à¤ò¼Â¹Ô¤·¡¢¾ã³²ÊªÍѤÎŨ¤¬·ÐÏ©¾å¤ò¼«Æ°¤Ç°ÜÆ°¤¹¤ë¤«¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
¼«Æ°Åª¤Ë¥ë¡¼¥×¤·¡¢Æ±¤¸¥ë¡¼¥È¾å¤ò×Ñ×ˤ¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤Î³Îǧ¤â¤ª¤³¤Ê¤Ã¤Æ¤¯¤À¤µ¤¤¡£
¡ã¼ÂÁõÆ°²è¡¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡ã¼ÂÁõÆ°²è¢¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯