
正如您在上面的图片中所看到的,当我单击白色路径时,该对象将完美地移动到单击的位置。当我点击蓝色地面时,物体不会移动到那里,但它会在白色路径上找到最近的位置,这是我不想要的行为。
如果单击位于白色路径之外,我希望对象不移动。
检查员:
白色路径:导航静态可行走
蓝地:什么都没有。
对象脚本:
void Update ()
{
if (Input.GetButtonDown("Fire1"))
{
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100))
{
navAgent.destination = hit.point;
navAgent.Resume();
}
}
}发布于 2017-03-13 22:41:40
如果单击位于白色路径之外,我希望对象不移动。
您可以通过检查单击了哪个对象来做到这一点。您可以使用hit.collider.name检查它的名称,也可以使用hit.collider.CompareTag标记来查看单击了哪个对象。我建议你用标签。
创建一个名为" whitepath“的标记,然后将您的whitepath GameObject设置为此标记。然后,您可以在光线投射之后比较标签名。这是关于如何创建标签的团结。
void Update()
{
if (Input.GetButtonDown("Fire1"))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100))
{
//Check for white path
if (hit.collider.CompareTag("whitepath"))
{
navAgent.destination = hit.point;
navAgent.Resume();
}
}
}
}https://stackoverflow.com/questions/42774426
复制相似问题