³×ºñ¸Þ½¬¿¡¼ ±æÀ» ãÀ»¶§ Àå¾Ö¹° ¾øÀÌ °æ·Î¸¦ º¯°æ ÇÒ¼ö ÀÖ´Ù.
·¹À̾îÀÇ ºñ¿ëÀ» º¯°æÇÏ¸é ´Ù¸¥ °æ·Î¸¦ Ž»öÇÏ°Ô µÈ´Ù.
´ÙÀ½°ú °°ÀÌ °ÔÀÓ¿ÀºêÁ§Æ®¸¦ ¹èÄ¡ÇÑ´Ù.
Å¥ºê¸¦ ³×ºñ°ÔÀÌ¼Ç ¸Þ½¬·Î ±¸¿ï°ÍÀÌ´Ù.
³×ºñ¸Þ½¬ ·¹ÀÌ¾î ¸¸µé°í ±Á±â
³×ºñ¸Þ½¬·Î ·¹À̾ ¸¸µå´Â ¹æ¹ý¿¡ ´ëÇؼ ¾Ë¾Æ º¸ÀÚ.
1. Navigation ºä¿¡¼ ·¹À̾îÀÇ À̸§À» ¸¸µç´Ù.
¿©±â¼´Â path1ÀÌ´Ù.
2. Navigation Area¸¦ ¼³Á¤ ÇÑ´Ù.
Static ¿ÀºêÁ§Æ®´Â "Walkable"·Î ¼³Á¤ µÇ¾î ÀÖ´Ù.
¿ì¸®°¡ Ãß°¡ÇÑ "path1"À¸·Î ¼³Á¤ÇÑ´Ù.
¿©±â¼´Â Cube (2), Cube (3)À» "path1"À¸·Î º¯°æÇÑ´Ù.
3. ³×ºñ°ÔÀÌ¼Ç ¸Þ½¬¸¦ ±Á´Â´Ù.
4. NavMove.cs ½ºÅ©¸³Æ®¸¦ Player(Sphere ¸ð¾ç)¿¡ Ãß°¡ÇÏ°í Capsule ¿ÀºêÁ§Æ®¸¦
NavMove.TargetÀ¸·Î ¼³Á¤ÇÑ´Ù.
//NavMove.cs
using UnityEngine;
public class NavMove : MonoBehaviour {
public GameObject Target;
void Start()
{
GetComponent<NavMeshAgent>().SetDestination(Target.transform.position);
}
}
ÄÚµå·Î È°¿ëÇϱâ
°æ·Î (A)°¡ ÃÖÀûÀÇ °æ·ÎÀÌ´Ù. ÄÚµå·Î ¾î¶² ¼öÁ¤µµ ÇÏÁö ¾ÊÀ¸¸é °æ·Î (A)·Î ¿òÁ÷ÀÏ °ÍÀÌ´Ù.
NavMesh.SetAreaCost( ) ÇÔ¼ö¸¦ ÀÌ¿ëÇØ ·¹À̾îÀÇ ºñ¿ëÀ» ¿Ã¸®¸é °æ·Î¸¦ ½Ç½Ã°£À¸·Î º¯°æ ÇÒ¼ö ÀÖ´Ù.
´ÙÀ½°ú °°ÀÌ "path1"ÀÇ ºñ¿ëÀ» 2·Î ¿Ã·Á ¹ö¸®¸é °æ·Î (A) ´ë½Å °æ·Î (B)·Î À̵¿ÇÒ°ÍÀÌ´Ù.
(SetLayerCost¿¡¼ SetAreaCost·Î ¸í·É¾î°¡ º¯°æµÇ¾ú´Ù.)
//NavMesh.SetAreaCost(3, 2);
int layer = NavMesh.GetAreaFromName("path1");
NavMesh.SetAreaCost(layer, 2);
//NavMove.cs
using UnityEngine;
public class NavMove : MonoBehaviour {
public GameObject Target;
void Start()
{
//NavMesh.SetAreaCost(3, 2);
int layer =
NavMesh.GetAreaFromName("path1");
NavMesh.SetAreaCost(layer,
2);
GetComponent<NavMeshAgent>().SetDestination(Target.transform.position);
}
}
Âü°í)
À̵¿ °æ·Î º¯°æ
http://tsubakit1.hateblo.jp/entry/2014/10/06/235926
»óȲ¿¡ µû¶ó À̵¿ °æ·Î º¯°æ
http://tsubakit1.hateblo.jp/entry/20140113/1389621842
|