ºÇ½ª¹¹¿·¡§ orika_ex_miyako 2023ǯ05·î15Æü(·î) 11:11:07ÍúÎò
¡¡
¡¡Æ±»þ¤ËÌäÂêÅÀ¤â¸«¤Ä¤«¤ê¤Þ¤·¤¿¡£
¡¡¤³¤³¤«¤é¤³¤³¤Þ¤Ç¡¢¤È¤¤¤¦ÈÏ°Ï»ØÄê¤ò¹Ô¤Ã¤¿¾å¤Ç¡¢¥é¥ó¥À¥à¤Ê°ÌÃÖ¤ËÊõÀФò¼«Æ°À¸À®¤·¤Æ¤¤¤Þ¤¹¤¬¡¢
¤³¤ÎÈÏ°ÏÆâ¤Ë¤Ï¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°¤Ç¤¤Ê¤¤¾ì½ê¤â´Þ¤Þ¤ì¤Æ¤¤¤ë¤¿¤á¡¢¤½¤¦¤¤¤Ã¤¿°ÌÃÖ¤ËÊõÀФòÀ¸À®¤·¤Æ¤Ï
¥×¥ì¥¤¥ä¡¼¤¬ÊõÀФò³ÍÆÀ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¡£Î㤨¤Ð·úʪÆâÉô¤ä¡¢ÌÚ¡¹¤Î´Ö¤È¤¤¤Ã¤¿°ÌÃ֤Ǥ¹¡£
¡¡¤³¤Î¼ê½ç¤Ç¤Ï¤³¤ÎÌäÂê¤ò²ò·è¤¹¤ëÊýË¡¤Î£±¤Ä¤ò³Ø½¬¤·¤Þ¤¹¡£
¡ã¼ÂÁõ²èÁü¡ä
¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡°Ê²¼¤ÎÆâÍƤǽçÈ֤˼ÂÁõ¤ò¿Ê¤á¤Æ¤¤¤¤Þ¤¹¡£
¼ê½ç£±£¹¡¡¡¼¥×¥ì¥¤¥ä¡¼¤¬³ÍÆÀ¤Ç¤¤ë¥é¥ó¥À¥à¤Ê°ÌÃÖ¤ËÂФ·¤ÆÊõÀФò¼«Æ°À¸À®¤¹¤ëµ¡Ç½(Á°²ó¤Î½¤Àµ)¡¼
£±¡¥ £²¡¥
¡ã¿·¤·¤¯³Ø½¬¤¹¤ëÆâÍÆ¡ä
¡¡¡¦NavMesh.SamplePosition() ¥á¥½¥Ã¥É
¡¡¤³¤Îµ¡Ç½¤ÎÌÜŪ¤Ï¡¢¥¹¥Æ¡¼¥¸Æâ¤Î¥×¥ì¥¤¥ä¡¼¤¬°ÜÆ°¤Ç¤¤ëÈÏ°ÏÆâ¤Ë¡¢°ìÄê»þ´Ö¤ª¤¤Ë¥é¥ó¥À¥à¤Ê°ÌÃÖ¤ËÊõÀФòÀ¸À®¤¹¤ë¤³¤È¤Ç¤¹¡£
¶ñÂÎŪ¤Ë¤Ï°Ê²¼¤Î¼ê½ç¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡£±¡¥¥¹¥Æ¡¼¥¸Æâ¤Ë ¡¡£³¡¥°ìÄê»þ´Ö¤ª¤¤Ë ¡¡£´¡¥¥é¥ó¥À¥à¤Ê°ÌÃÖ¤ËÂФ·¤Æ ¡¡£µ¡¥ÊõÀФòÀ¸À®¤¹¤ë
¡¡¢
¡¡£±¡¥¥¹¥Æ¡¼¥¸Æâ¤Ë ¡Ú£²¡¥¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°¤Ç¤¤ëÈÏ°ÏÆâ¤Ë¡Û ¡¡£³¡¥°ìÄê»þ´Ö¤ª¤¤Ë ¡¡£´¡¥¥é¥ó¥À¥à¤Ê°ÌÃÖ¤ËÂФ·¤Æ ¡¡£µ¡¥ÊõÀФòÀ¸À®¤¹¤ë
¡¡¤³¤Î¤¦¤Á¡¢¡Ú£²¡¥¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°¤Ç¤¤ëÈÏ°ÏÆâ¤Ë¡Û¤È¤¤¤¦Éôʬ¤Ë¤Ä¤¤¤Æ¤Ï¤Þ¤Àµ¡Ç½¤¬¤¢¤ê¤Þ¤»¤ó¡£
´°Á´¤Ë¥é¥ó¥À¥à¤Ê°ÌÃ֤Ǥ¢¤ë¤¿¤á¡¢¸½ºß¤Ï¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°Èϰϳ°¤Ë¤âÊõÀФ¬À¸À®¤µ¤ì¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡º£²ó¤Î¼ê½ç¤Ç¤Ï¡Ú£²¡¥¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°¤Ç¤¤ëÈÏ°ÏÆâ¤Ë¡Û¤Îµ¡Ç½¤òÄɲ䷤Ƥ¤¤¯¤³¤È¤Ç¡¢¥×¥ì¥¤¥ä¡¼¤Î¼è¤ì¤ë¾ì½ê¤Ë¤À¤±ÊõÀФòÇÛÃÖ¤·¤Þ¤¹¡£
¡¡¤³¤Î¼ÂÁõ¤Ë¤¢¤¿¤Ã¤Æ¤Ï¡¢NavMesh.SamplePosition() ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ¡¢ÊõÀФÎÀ¸À®¤·¤¿¸å¤Î°ÌÃÖ¤òÄ´À°¤·¤ÆÂбþ¤·¤Þ¤¹¡£
¡¡°ÜÆ°¤µ¤»¤ëºÝ¤Ë¤Ï Shift + F ¥¡¼¤ò²¡¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢¼«Æ°Åª¤Ë¥«¥á¥é¤¬°ÜÆ°Àè¤ËÄɽ¾¤µ¤»¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¥ª¥Ö¥¸¥§¥¯¥È¤Î°ÜÆ°¤Ë¥«¥á¥é¤òÄɽ¾¤µ¤»¤ë
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡°Ê²¼¤Ï»²¹ÍÃͤǤ¹¡£¼ÂºÝ¤Ë¤Ï¼«Ê¬¤Î¥×¥í¥¸¥§¥¯¥È¤Ë¹ç¤ï¤»¤ÆÄ´À°¤ò¤ª¤³¤Ê¤Ã¤Æ¤¯¤À¤µ¤¤¡£
¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü
Scene ¥Ó¥å¡¼²èÁü¡
Scene ¥Ó¥å¡¼²èÁü¢
Scene ¥Ó¥å¡¼²èÁü£
¡¡ÉÔÍפˤʤê¤Þ¤·¤¿¤Î¤Ç¡¢Cube ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºï½ü¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡ÊõÀФòÀ¸À®¤¹¤ëµ¡Ç½¤ò¼ÂÁõ¤¹¤ë¤¿¤á¤Ë¡¢°Ê²¼¤Î¼ê½ç¤Ë±è¤Ã¤Æ¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Æ¤¤¤¤Þ¤¹¡£
¡¡£±¡¥¥¹¥Æ¡¼¥¸Æâ¤Ë ¡¡£³¡¥°ìÄê»þ´Ö¤ª¤¤Ë ¡¡£´¡¥¥é¥ó¥À¥à¤Ê°ÌÃÖ¤ËÂФ·¤Æ ¡¡£µ¡¥ÊõÀФòÀ¸À®¤¹¤ë
¡¡£±¡¥¥¹¥Æ¡¼¥¸Æâ¤Ë ¡¡£²¡¥¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°¤Ç¤¤ëÈÏ°ÏÆâ¤Ë ¡¡£³¡¥°ìÄê»þ´Ö¤ª¤¤Ë ¡¡£´¡¥¥é¥ó¥À¥à¤Ê°ÌÃÖ¤ËÂФ·¤Æ ¡¡£µ¡¥ÊõÀФòÀ¸À®¤¹¤ë
¡¡¤³¤ÎÀ߷פò¸µ¤Ë¡¢GemSpawner ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢ÊõÀФÎÀ¸À®½èÍý¤òÄɲä·¤Þ¤¹¡£
¡¡¤³¤Î¥¹¥¯¥ê¥×¥È¤Ç¤Ï¡¢gemPrefab ¤ËÀßÄꤷ¤¿ÊõÀÐ¥×¥ì¥Õ¥¡¥Ö¤ò°ìÄê¤Î¥¤¥ó¥¿¡¼¥Ð¥ë¡ÊspawnInterval¡Ë¤Ç¥¹¥Æ¡¼¥¸Æâ¤Î¥é¥ó¥À¥à¤Ê°ÌÃÖ¤ËÀ¸À®¤·¤Þ¤¹¡£À¸À®°ÌÃ֤ϡ¢NavMesh.SamplePosition() ¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ¥×¥ì¥¤¥ä¡¼¤¬°ÜÆ°²Äǽ¤ÊÈÏ°ÏÆâ¤Ë¼ý¤á¤é¤ì¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
GemSpawner.cs
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡NavMesh.SamplePosition() ¥á¥½¥Ã¥É¤Ï¡¢Í¿¤¨¤é¤ì¤¿ºÂɸ¤«¤é»ØÄꤷ¤¿µ÷Î¥Æâ¤Ç¡¢¥×¥ì¥¤¥ä¡¼¤¬°ÜÆ°¤Ç¤¤ëÈϰϤκÂɸ¤òõ¤·½Ð¤¹¥á¥½¥Ã¥É¤Ç¤¹¡£¤³¤ì¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢¥¹¥Æ¡¼¥¸Æâ¤ÎŬÀڤʰÌÃÖ¤ËÊõÀФòÀ¸À®¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
// SamplePosition ¤Ï¡¢Âè4°ú¿ô¤Ë»ØÄꤷ¤¿ÈÏ°ÏÆâ¤Î NavMesh ¤Ë¤ª¤¤¤Æ¡¢Âè1°ú¿ô¤Ë¤Ä¤¤¤Æ¡¢ºÇ¤â¶á¤¤ÅÀ¤ò¸¡º÷¤¹¤ë¡£¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï hit ¤ËÂåÆþ¤µ¤ì¤ë¡£ÃÖ¤±¤Ê¤¤¾ì¹ç¤À¤± false ¤Ë¤Ê¤ë // navMeshHitÊÑ¿ô¤Ï¡¢NavMesh¥Ù¥¤¥¯¥¨¥ê¥¢¤ËÃÖ¤±¤ë¾ì¹ç¤Ï¡¢gem ¤Î position¤Î¾ðÊó¤¬ÂåÆþ¤µ¤ì¤ë // NavMesh¥Ù¥¤¥¯¥¨¥ê¥¢¤¸¤ã¤Ê¤¤¾ì¹ç¡¢°ìÈֶᤤNavMesh¥Ù¥¤¥¯¥¨¥ê¥¢¤Î¾ðÊó¤¬ÂåÆþ¤µ¤ì¤ë if (NavMesh.SamplePosition(gem.transform.position, out NavMeshHit hit, 1.0f, NavMesh.AllAreas)) { // hit.position ¤ÎÃͤϡ¢¥Ù¥¤¥¯¤·¤¿¥¨¥ê¥¢Æâ¤ËÃÖ¤±¤ë Position ¤Î¾ì¹ç¤Ë¤Ï¡¢gem ¤Î position ¤ÈƱ¤¸Ãͤò¤½¤Î¤Þ¤ÞÂåÆþ¤·Ä¾¤¹ // ¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢°ìÈֶᤤ NavMesh ¤Î¥Ù¥¤¥¯¥¨¥ê¥¢¤Î Position ¤ÎÃͤòÂåÆþ¤¹¤ë gem.transform.position = hit.position; Debug.Log("ÊõÀФΰÌÃÖÄ´À°¤·¤ÆÇÛÃÖ"); }
»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
NavMesh.SamplePosition
Zenn k1t(³°¿À) ÍÍ
Unity C# Script Ũ¥¥ã¥é¤òNavMesh¤Ç¤«¤·¤³¤¯¤«¤Ã¤³¤è¤¯Æ°¤«¤·¤Æ¤ß¤è¤¦¡£
¡¡¤³¤ì¤Ç¡¢¥¹¥Æ¡¼¥¸Æâ¤Î¥é¥ó¥À¥à¤Ê°ÌÃÖ¤ËÊõÀФΥץì¥Õ¥¡¥Ö¥Ð¥ê¥¢¥ó¥È¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬¼«Æ°À¸À®¤µ¤ì¤ëµ¡Ç½¤¬¼ÂÁõ¤Ç¤¤Þ¤·¤¿¡£¥×¥ì¥¤¥ä¡¼¤Ï¡¢ÊõÀФò²ó¼ý¤¹¤ë¤³¤È¤Ç¥¹¥³¥¢¤ò³ÍÆÀ¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡ã¼ÂÁõ²èÁü¡ä
¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£
¡¡=>¡¡¼¡¤Ï¡¡¼ê½ç£²£°¡¡¡¼¡¼¡¡¤Ç¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯