版本: Unity 6 (6000.0)
语言英语
  • C#

NavMeshAgent.FindClosestEdge

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们确实会阅读用户提供的每一个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public bool FindClosestEdge(out AI.NavMeshHit hit);

参数

hit 保存结果位置的属性。

返回值

bool 如果找到最近的边缘,则为 True。

描述

找到最近的 NavMesh 边缘。

返回的 NavMeshHit 对象包含最近的 Navmesh 边缘上最近点的坐标和详细信息。由于边缘通常对应于墙壁或其他大型物体,因此这可用于使角色尽可能靠近墙壁躲避。

using UnityEngine;
using UnityEngine.AI;
using System.Collections;

public class ExampleClass : MonoBehaviour { private NavMeshAgent agent; void Start() { agent = GetComponent<NavMeshAgent>(); } void Update() { if (Input.GetMouseButtonDown(0)) TakeCover(); } void TakeCover() { NavMeshHit hit; if (agent.FindClosestEdge(out hit)) agent.SetDestination(hit.position); } }