ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ10·î31Æü(²Ð) 12:38:56ÍúÎò
¥¿¥¤¥ë¥Þ¥Ã¥×¾å¤Ç¤âµ¡Ç½¤·¤Þ¤¹¡£


¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡NavMeshAgent¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢NavMesh¾å¤Ç¤Î¸úΨŪ¤Ê°ÜÆ°¤¬¼Â¸½¤µ¤ì¡¢¥ê¥¢¥ë¥¿¥¤¥à¤Ç¤ÎÂоݤÎÄÉÀפ¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¥È¥Ã¥×¥À¥¦¥ó·¿¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤³¤Á¤é¤Îµ»ö¤ò»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡=>¡¡¡Ú£²£Ä¡ÛNavMeshAgent ¤Ë¤è¤ë¥Ù¡¼¥·¥Ã¥¯¤ÊÄÉÀ×µ¡Ç½¤Î¼ÂÁõÎã
¡¡NavMeshAgent ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¡¢¤³¤Î¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤ÆÍøÍѤ·¤Þ¤¹¡£
º£²ó¤ÏºÎÍѤ·¤Æ¤¤¤Þ¤»¤ó¤¬¡¢[RequireComponent(typeof(T))] °À¤òÉÕÍ¿¤¹¤ë¤³¤È¤Ç°ÂÁ´¤ËÍøÍѤǤ¤Þ¤¹¡£
¡¡¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¤¥ó¥¹¥¿¥ó¥¹¤·¤Æ NavMeshAgent ¤Ë¤è¤ë°ÜÆ°¤ò¹Ô¤¤¤¿¤¤¾ì¹ç¡¢
»öÁ°¤Ë NavMeshAgent ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¥ª¥Õ¤Ë¤·¤Æ¤ª¤¯¤«¡¢¾ðÊó¤ò¼èÆÀ¤·¤Æ¤«¤é·ÐÏ©¤òÀßÄꤹ¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¡¥¤¥ó¥¹¥¿¥ó¥¹¤µ¤ì¤¿Ä¾¸å¤Ï Bake ¤µ¤ì¤Æ¤¤¤ë·ÐÏ©¾ðÊó¤òÃΤé¤Ê¤¤¤¿¤á¡¢·ÐÏ©¸¡º÷¤Ë¼ºÇÔ¤·¤Æ¥¨¥é¡¼¤Ë¤Ê¤ë¤¿¤á¤Ç¤¹¡£
¡¡¤Þ¤¿ NavMeshAgent ¤Ï£³£Ä¤ò¥Ù¡¼¥¹¤Ëµ¡Ç½¤·¡¢ÂоݤÎÊý¸þ¤ËÂФ·¤Æ¤Î²óž¤â¼«Æ°Åª¤Ë¹Ô¤¤¤Þ¤¹¡£
¤½¤Îµ¡Ç½¤ò£²£Ä¤Ç»ÈÍѤ¹¤ë¤ÈÉÔ¶ñ¹ç¤¬À¸¤¸¤ë¤¿¤á¡¢¤½¤ì¤é¤Îµ¡Ç½¤òÆ°¤«¤Ê¤¤¤è¤¦¤ËÀ©¸æ¤·¤Æ¤¤¤Þ¤¹¡£
Chaser.cs
¡¡public Transform target ¤Ç»ØÄꤵ¤ì¤¿¥×¥ì¥¤¥ä¡¼¥ª¥Ö¥¸¥§¥¯¥È¡Ê¤Þ¤¿¤Ï¾¤ÎÂоݡˤòÄÉÀפ¹¤ë¤¿¤á¤ÎTransform¤òÊÝ»ý¤¹¤ëÊÑ¿ô¤òÀë¸À¤·¤Þ¤¹¡£
¡¡private NavMeshAgent agent ¤ÇNavMeshAgent¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÊÝ»ý¤¹¤ëÊÑ¿ô¤òÀë¸À¤·¤Þ¤¹¡£NavMeshAgent¤Ï¡¢NavMesh¾å¤Ç¤Î°ÜÆ°¤ò´ÉÍý¤¹¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ç¤¹¡£
¡¡Start ¥á¥½¥Ã¥ÉÆâ¤Ç¡¢NavMeshAgent¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¼èÆÀ¤·¡¢°Üư®ÅÙ¤òÀßÄꤷ¤Þ¤¹¡£
¤â¤·NavMeshAgent¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¼èÆÀ¤Ç¤¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Þ¤¹¡£
¡¡Update ¥á¥½¥Ã¥ÉÆâ¤Ç¡¢°Ê²¼¤Î½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡¡¡¡¡a. NavMeshAgent¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢Âоݡʥץ쥤¥ä¡¼¥ª¥Ö¥¸¥§¥¯¥È¡Ë¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢½èÍý¤òÃæÃǤ·¤Þ¤¹¡£¤³¤ì¤Ï¥¨¥é¡¼¤òËɤ°¤¿¤á¤Î¥Á¥§¥Ã¥¯¤Ç¤¹¡£
¡¡¡¡¡¡b. ¥ª¥Ö¥¸¥§¥¯¥È¤ÈÂоݤޤǤε÷Î¥¤ò·×»»¤·¡¢¥Ç¥Ð¥Ã¥°¥í¥°¤Çɽ¼¨¤·¤Þ¤¹¡£¤³¤Îµ÷Î¥¤ò¤â¤È¤Ë¡¢Âоݤ¬»ë³¦¤ËÆþ¤Ã¤¿¤«¤É¤¦¤«¤òȽÄꤷ¤Þ¤¹¡£
¡¡¡¡¡¡c. sightRange ÊÑ¿ô¤Ï»ë³¦¤òɽ¸½¤·¤Þ¤¹¡£
¡¡¡¡¡¡¡¡¤³¤ÎÆâ¤ËÂоݤ¬¤¤¤ë¾ì¹ç¡Êµ÷Î¥¤¬ sightRange °Ê²¼¤Î¾ì¹ç¡Ë¡¢NavMeshAgent¤Î SetDestination ¥á¥½¥Ã¥É¤ò»ÈÍѤ·¤ÆÂоݤΰÌÃÖ¤ò°ÜÆ°ÌÜɸÃÏÅÀ¤ËÀßÄꤷ¤Þ¤¹¡£
¡¡¡¡¡¡¡¡¤³¤ì¤Ë¤è¤ê¡¢¥ª¥Ö¥¸¥§¥¯¥È¤ÏÂоݤòÄÉÀפ·¤Þ¤¹¡£
¡¡¡¡¡¡d. sightRange ¤è¤ê¤âÂоݤ¬±ó¤¯¤Ë¤¤¤ë¾ì¹ç¡¢NavMeshAgent¤Î ResetPath ¥á¥½¥Ã¥É¤ò»ÈÍѤ·¤Æ°ÜÆ°¤òÄä»ß¤·¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢Âоݤ¬»ë³¦³°¤Ë½Ð¤¿¤ÈȽÃǤ·¤Æ¡¢ÄÉÀפòÄä»ß¤·¤Þ¤¹¡£
¡¡£³£Ä¤Î¾ì¹ç¤ÈÂ礤¯°Û¤Ê¤ë¤Î¤Ï¡¢agent.updateRotation ¤È agent.updateUpAxis ¤ò¥ª¥Õ¤ËÀßÄꤷ¡¢3DÍѤβóžÀßÄê¤ò̵¸ú¤Ë¤·¤Æ¤¤¤ëÉôʬ¤Ç¤¹¡£
¤Þ¤¿¹â¤µ¤Î¾ðÊó¤âÉÔÍפǤ¢¤ë¤¿¤á¡¢Y ¼´¤Ï¾ï¤Ë¥×¥ì¥¤¥ä¡¼¤Î¾ðÊó¤òÍøÍѤ·¡¢¾å²¼º¸±¦Êý¸þ¤ÎÂоݤޤǤε÷Î¥¤ò·×»»¤·¤Æ¤¤¤Þ¤¹¡£
(ʬ¤«¤ê¤Ë¤¯¤¤¤Ç¤¹¤¬¡¢NavMeshAgent ¤Ï£³£Ä¶õ´Ö¤òǧ¼±¤·¤Æ¤¤¤ë¤¿¤á¡¢¾å²¼º¸±¦¤Î¾ðÊó¤Ï X ¼´¤È Z ¼´¤Ë¤Ê¤ê¤Þ¤¹¡£)
¡¡¤³¤ì¤Ë¤è¤ê¡¢£²£Ä¶õ´Ö¤ÇNavMesh¤òÀµ¤·¤¯»ÈÍѤǤ¤Þ¤¹¡£
¡¡¤Ê¤ª¡¢ÂоݤòÄÉÀפ¹¤ëºÝ¤Ë Position ¤Î Z ¼´¤¬¥Þ¥¤¥Ê¥¹Êý¸þ¤Ë¤Ê¤Ã¤Æ²èÌ̤«¤é¾Ã¤¨¤Æ¤·¤Þ¤¦¾ì¹ç¤Ë¤Ï¡¢
¥¹¥¯¥ê¥×¥È¤òÍøÍѤ·¤Æ¶¯À©Åª¤Ë Z ¼´¤ò 0 ¤ËÀ©¸æ¤¹¤ëÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£
// Âоݤ¬»ë³¦¤ËÆþ¤Ã¤¿¾ì¹ç(µ÷Î¥¤¬¶á¤¤¾ì¹ç) if (distanceToPlayer <= sightRange) { // ÂоݤΰÌÃÖ¤ò°ÜÆ°ÌÜɸÃÏÅÀ¤ËÀßÄê // Update ¥á¥½¥Ã¥ÉÆâ¤Ç¼Â¹Ô¤·¤Æ¤¤¤ë¤Î¤Ç¡¢Âоݤ¬°ÜÆ°¤¹¤ë¤È¡¢ÌÜɸÃÏÅÀ¤â¹¹¿·¤µ¤ì¤ë¤Î¤ÇÄÉÀפ¹¤ë agent.SetDestination(targetPosition); // Position Z ¤¬ 0 °Ê³°¤Ë¤Ê¤Ã¤Æ²èÌ̤«¤é¸«¤¨¤Ê¤¯¤Ê¤ë¾ì¹ç¤Ë¤ÏÀ©¸æ¤¹¤ë Vector3 nextPos = new(transform.position.x, transform.position.y, 0); transform.position = nextPos; }
¡¡NavMeshAgent ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òưŪ¤ËÀ¸À®¤·¤¿¾ì¹ç¡¢
Bake ¾ðÊó¤ò¤·¤é¤Ê¤¤¾õÂ֤ǥ¹¥¿¡¼¥È¤¹¤ë¤¿¤á¡¢¥¨¥é¡¼¤¬¤Ç¤ë¥±¡¼¥¹¤¬¤¢¤ê¤Þ¤¹¡£
¡¡¤³¤ì¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥×¥ì¥Ï¥Ö»þ¤Ë¤Ï NavMeshAgent ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¥ª¥Õ¤Ë¤·¤Æ¤ª¤¤¤Æ
TryGetComponent À®¸ù¸å¤Ë¥ª¥ó¤Ë¤¹¤ë¤³¤È¤ÇÂбþ½ÐÍè¤Þ¤¹¡£
¤³¤Îµ¡Ç½¤Ï¤¹¤Ç¤Ë¼ÂÁõºÑ¤Ç¤¹¡£
¡¡
¡¡Â¾¤Ë¡¢À¸À®¤·¤¿°ÌÃ֤ˤĤ¤¤ÆÌäÂ꤬À¸¤¸¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
¥×¥ì¥Ï¥Ö¤òÀ¸À®¤·¤¿°ÌÃÖ¤¬ Bake ¤µ¤ì¤Æ¤¤¤ì¤ÐÌäÂꤢ¤ê¤Þ¤»¤ó¤¬¡¢Bake ³°¤Ë¤ÆÀ¸À®¤·¤Æ¤·¤Þ¤¦¤È¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤¹¡£
¡¡Âбþºö¤È¤·¤Æ¤Ï£²¤Ä¤¢¤ê¤Þ¤¹¡£
¡¡£±¤Ä¤Ï¡¢NavMesh ¤Ë¤Ï NavMeshPathStatus ¤È¤¤¤¦ enum ¤¬¤¢¤ê¡¢¤³¤Á¤é¤òÍøÍѤ·¤Æ¡¢Bake ¤µ¤»¤ì¤Æ¤¤¤ë¾ì½ê¤«¤É¤¦¤«¤ò³Îǧ¤¹¤ëÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£
if(agent.pathStatus != NavMeshPathStatus.PathInvalid) { // ¤³¤ÎÃæ¤Ç SetDestination ¤¹¤ë }
»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¡¦¥ê¥Õ¥¡¥ì¥ó¥¹
NavMeshPathStatus
¡¡¤¿¤À¤·¤³¤ÎÊýË¡¤Î¾ì¹ç¡¢¤³¤Î¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤¤ÈÆ°¤«¤Ê¤¤¾õÂ֤ˤʤê¤Þ¤¹¡£
¡¡¤â¤¦£±¤Ä¤ÎÊýË¡¤È¤·¤Æ¤Ï¡¢NavMesh.SamplePosition ¥á¥½¥Ã¥É¤òÍøÍѤ¹¤ëÊýË¡¤Ç¤¹¡£
¤³¤Á¤é¤Ï°ú¿ô¤Ç»ØÄꤷ¤¿°ÌÃÖ¤¬ Bake ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ºÇ¤â¶á¤¤ Bake ÃÏÅÀ¤òõ¤·¤Æ¤¯¤ì¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£
¤³¤Î½èÍý¤òÁȤ߹ç¤ï¤»¤ë¤³¤È¤Ç°ÂÁ´¤ÊÀ¸À®¤¬¹Ô¤¨¤Þ¤¹¡£
if (NavMesh.SamplePosition(transform.position, out NavMeshHit hit, 1.0f,NavMesh.AllAreas)) { // °ÌÃÖ¤ò Bake ¥¨¥ê¥¢Æâ¤ËÊäÀµ¤¹¤ë transform.position = hit.position; }
»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¡¦¥ê¥Õ¥¡¥ì¥ó¥¹
NavMesh.SamplePosition
¥½¥Õ¥È¥é¥¤¥à ÍÍ
Ũ¥¥ã¥é¤Î½Ð¸½¤ò¼«Æ°²½¤¹¤ë¡ÊNavMesh¥Ñ¥¿¡¼¥ó¡Ë
Zenn k1t(³°¿À) ÍÍ
Unity C# Script ¤«¤·¤³¤¯¥¨¥â¤¤Æ°¤¤ÎŨ¥¥ã¥é¤ÏNavMesh¤ò»È¤¤¤³¤Ê¤»¡£
¡¡Update ¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤¬¡¢Å¬ÀڤʰÌÃÖ¤Ç return ¤µ¤ì¡¢ÉÔÍפʽèÍý¤¬Æ°¤«¤Ê¤¤¤è¤¦¤ËÀ©¸æ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤³¤Î¤è¤¦¤Ê·Á¤Ç return ¤ò¾å¼ê¤¯³èÍѤ¹¤ë¤È¡¢if ʸ¤Ë¤è¤ë¥Í¥¹¥È¤òÀõ¤¯½ÐÍè¤Þ¤¹¡£
¡¡²¾¤Ë¡¢¤â¤·¤âÄÉÀ×Ãæ¤À¤Ã¤¿¤é¡¢¤È¤¤¤¦ if ʸ¤Ç½èÍý¤ò½ñ¤¯·Á¤ò¸«¤Æ¤ß¤Þ¤·¤ç¤¦¡£
private void Update() { // NavMeshAgent ¤¬¼èÆÀ¤Ç¤¤Ê¤¤¡¢¤¢¤ë¤¤¤Ï°ÜÆ°Àè¤ÎÂоݤ¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç if (!agent || !target) { // ½èÍý¤ò¹Ô¤ï¤Ê¤¤(¥¨¥é¡¼¤¬½Ð¤Æ¤·¤Þ¤¦¤¿¤á) return; } // ¤³¤Î¥ª¥Ö¥¸¥§¥¯¥È¤È°ÜÆ°Àè¤ÎÂоݤޤǤε÷Î¥¤ò·×»» Vector3 targetPosition = new Vector3(target.position.x, transform.position.y, target.position.z); float distanceToPlayer = Vector3.Distance(transform.position, targetPosition); // ¤É¤Î°ÌÎ¥¤ì¤Æ¤¤¤ë¤«¤òɽ¼¨ Debug.Log("ÂоݤޤǤε÷Î¥ : " + distanceToPlayer); if (isChasing) { // Âоݤ¬»ë³¦¤ËÆþ¤Ã¤¿¾ì¹ç(µ÷Î¥¤¬¶á¤¤¾ì¹ç) if (distanceToPlayer <= sightRange) { // ÂоݤΰÌÃÖ¤ò°ÜÆ°ÌÜɸÃÏÅÀ¤ËÀßÄê // Update ¥á¥½¥Ã¥ÉÆâ¤Ç¼Â¹Ô¤·¤Æ¤¤¤ë¤Î¤Ç¡¢Âоݤ¬°ÜÆ°¤¹¤ë¤È¡¢ÌÜɸÃÏÅÀ¤â¹¹¿·¤µ¤ì¤ë¤Î¤ÇÄÉÀפ¹¤ë agent.SetDestination(targetPosition); } else { // Âоݤ¬»ë³¦³°¤Î¾ì¹ç(µ÷Î¥¤¬±ó¤¤¾ì¹ç)¡¢¥¹¥¿¡¼¥ÈÃÏÅÀ¤ËÌá¤ë agent.SetDestination(originalDestination); } } else { // ÄÉÀ×Ãæ¤Ç¤Ï¤Ê¤¤¾ì¹ç¡¢°ÜÆ°¤òÄä»ß¤¹¤ë agent.ResetPath(); } }
¡¡ÄÉÀפ¹¤ë¤«¡¢Èݤ«¤òȽÃǤ¹¤ëÁ°¤Ë·×»»½èÍý¤ò¤·¤Æ¤¤¤¿¤ê¡¢if ʸÆâ¤Ë¤µ¤é¤Ë if ʸ¤òºî¤Ã¤ÆÄÉÀ×»þ¤Î½èÍý¤ò½ñ¤¤¤Æ¤¤¤ë¤Î¤Ç¡¢
if ʸ¤Î¥Í¥¹¥È¤¬¿¼¤¯¡¢¤Þ¤¿ÈϰϤ¬¹¤¯Æɤߤˤ¯¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡Ê¬´ô½èÍý¤òºîÀ®¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢true ¤Ç¤¢¤Ã¤¿¤È¤¤Ë½èÍý¤òÆ°¤«¤·¤¿Êý¤¬¤è¤¤¤Î¤«¡¢false ¤È¤·¤Æ½èÍý¤ò»ß¤á¤ë¤è¤¦¤Ë¤·¤¿Êý¤¬¤è¤¤¤Î¤«
ξÊý¤Î»ëÅÀ¤ò»ý¤Ã¤Æºî¤Ã¤Æ¤¤¤¯¤è¤¦¤Ë¿´¤¬¤±¤Þ¤·¤ç¤¦¡£
¡¡
¡¡¥³¡¼¥Ç¥£¥ó¥°¥¹¥¥ë¤ò¾å㤵¤»¤ë¥³¥Ä¤Î£±¤Ä¤Ç¤¹¡£
¤³¤Î¤è¤¦¤Ê»ëÅÀ¤ò¼ê¤ËÆþ¤ì¤é¤ì¤Ê¤¤¤È¡¢¤¤¤Ä¤Þ¤Ç¤âƱ¤¸·Á¼°¤Îʬ´ô½èÍý¤·¤«ºî¤ì¤Þ¤»¤ó¡£
¡¡¥¹¥¥ë¥¢¥Ã¥×¤Ë·Ò¤¬¤ë¤è¤¦¤Ê³Ø½¬¤ò¿´³Ý¤±¤Þ¤·¤ç¤¦¡£
¡¡NavMeshAgent ¤Ë¤è¤ë·ÐÏ©°ÜÆ°¤Ï¡¢Bake ¤·¤Æ¤¤¤ëÈÏ°ÏÆâ¤Ç¤¢¤ì¤Ð·ÐÏ©¤È¤·¤ÆÍøÍѤµ¤ì¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¥µ¥¤¥É¥Ó¥å¡¼¤Î¥²¡¼¥à¤Ç¤¢¤ë¤È¡¢Å¨¤¬¶õÃæ°ÜÆ°¤·¤Æ¤·¤Þ¤¦¥±¡¼¥¹¤¬È¯À¸¤·¤Þ¤¹¡£
¡¡À©¸æÊýË¡¤È¤·¤Æ¤Ï²¼Êý¸þ¤Ø¤Î½ÅÎϤ¬¤¢¤ê¤Þ¤¹¤¬¡¢»ÄÇ°¤Ê¤¬¤é NavMeshAgent ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Îµ¡Ç½¤òÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢
Rigidbody2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò°ì½ï¤Ëµ¡Ç½¤µ¤»¤ë¤È¶¥¹ç¤·¤ÆÀµ¾ï¤ÊÆ°ºî¤¬¹Ô¤¨¤Þ¤»¤ó¡£
¡¡¤½¤Î¤¿¤á¡¢µ¿»÷Ū¤Ê½ÅÎÏÃͤòÀßÄꤹ¤ë¤³¤È¤Ç¥µ¥¤¥É¥Ó¥å¡¼¤Ë¹ç¤ï¤»¤¿Ä´À°¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢¤½¤ì¤Ï¼ÂÁõ¤¬¤È¤Æ¤âÆñ¤·¤¤¤Ç¤¹¡£
¡¡£±¤Ä¤ÎÊýË¡¤È¤·¤Æ¡¢¿·¤·¤¤¥¿¥¤¥ë¥Þ¥Ã¥×ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÍÑ°Õ¤·¡¢Å¨¤Î°ÜÆ°¤òÁ˳²¤¹¤ë¤¿¤á¤Î¥¿¥¤¥ë¤òÉߤµÍ¤á¤ÆÂбþ¤¹¤ëÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£
¡ã¥¿¥¤¥ë¥Þ¥Ã¥×¤ò¶õÃæ¤ËÇÛÃÖ¤¹¤ë¡ä

¡ãBake ¤¹¤ë¤È¶õÃ椬°ÜÆ°¤Ç¤¤Ê¤¤ÈϰϤˤʤë¡ä

¡¡¤³¤ÎÎã¤Ç¤¢¤ì¤Ð¡¢¶õÃæ°ÜÆ°¤µ¤»¤¿¤¯¤Ê¤¤¶õÃæÉôʬ¤ËÃÏÌ̤Υ¿¥¤¥ë¥Þ¥Ã¥×¤òÇÛÃÖ¤·¤Þ¤¹¡£
¤³¤Î¥¿¥¤¥ëÉôʬ¤Ï Bake ÂоݤȤʤé¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢¶õÃæÉôʬ¤ò°ÜÆ°¤Ç¤¤Ê¤¤ÈϰϤȤ·¤Æǧ¼±¤µ¤»¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¤½¤Î¸å¡¢TilemapRenderer ¤ò¥ª¥Õ¤Ë¤¹¤ë¤«¡¢OrderinLayer ¤ò²¼¤²¤Æ²èÌ̤˥¿¥¤¥ë¤¬±Ç¤é¤Ê¤¤¾õÂ֤ˤ·¤Þ¤¹¡£
¡¡¤Þ¤¿ Bake ¤ËɬÍ×¤Ê TilmemapCollider2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È ¤¬¤¢¤ë¤È¥×¥ì¥¤¥ä¡¼¤âƬ¤ò¤Ö¤Ä¤±¤Æ¥¸¥ã¥ó¥×¤Ç¤¤Þ¤»¤ó¡£
¡¡¤½¤Î¤¿¤á¡¢TilemapCollider2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢Bake ¸å¤Ë¥ª¥Õ¤Ë¤¹¤ë¤Î¤¬´Êñ¤ÊÊýË¡¤Ê¤Î¤Ç¤¹¤¬
»ÄÇ°¤Ê¤¬¤é¥²¡¼¥à¼Â¹Ô»þ¤ËºÆÅÙ Bake ¤¬Áö¤Ã¤Æ¤·¤Þ¤¦»ÅÍ;塢Bake ¸å¤Ë TilemapCollider ¤ò¥ª¥Õ¤Ë¤·¤Æ¤·¤Þ¤¦¤È¡¢¾å¼ê¤¯ Bake ½ÐÍè¤Æ¤¤¤¿Éôʬ¤¬¾Ã¤¨¤Æ¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¡¡¤³¤³¤Ï°Â°×¤Ë¥ª¥Õ¤Ë¤Ï½ÐÍè¤Ê¤¤¤¿¤á¡¢¤³¤Î Layer ¤ò Bake ¤Ë¤·¤Æ¡¢¥×¥ì¥¤¥ä¡¼¤Î¥³¥é¥¤¥À¡¼¤ÈÀÜ¿¨¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Æ
°ÜÆ°¤È¥¸¥ã¥ó¥×¤òÁ˳²¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡¤â¤¦£±¤Ä¤Î¥¢¥×¥í¡¼¥Á¤È¤·¤Æ¤Ï¡¢¾åµ¤Î±þÍѤǡ¢Å¨¤Î°ÜÆ°Èϰϼ«ÂΤò¤â¤Ã¤ÈÂçÃÀ¤ËÀ©¸Â¤¹¤ëÊýË¡¤Ç¤¹¡£
²¼µ¤Î²èÁü¤è¤¦¤Ë¡¢°ÜÆ°ÈϰϤòºÙ¤«¤¯À©¸Â¤·¤Þ¤¹¡£

¡¡¤³¤Á¤é¤Î¼êË¡¤Ç¤¢¤ì¤Ð¡¢ÆÃÄê¤ÎÈÏ°ÏÆâ¤Î¤ß¤ÇÄÉÀ×°ÜÆ°¤¹¤ëŨ¤Ê¤É¤âºîÀ®¤Ç¤¤Þ¤¹¡£
¡¡°Ê¾å¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¿§¡¹¤Ê¼ÂÁõÊýË¡¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢À§Èó¥Á¥ã¥ì¥ó¥¸¤·¤Æ¡¢¤è¤ê¤è¤¤ÊýË¡¤òȯ¸«¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯