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

NavMeshAgent.Raycast

建议更改

成功!

感谢您帮助我们提升 Unity 文档的质量。虽然我们无法采纳所有提交,但我们会认真阅读每位用户建议的更改,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的更改建议未能提交。请在几分钟后,<a>重试</a>。感谢您抽出时间帮助我们提升 Unity 文档的质量。

关闭

取消

声明

public bool Raycast(Vector3 targetPosition, out AI.NavMeshHit hit);

参数

targetPosition 移动的预期结束位置。
hit 光线检测到的障碍物(如果有的话)的属性。

返回值

bool 如果特工和目标位置之间存在障碍物,则为 True,否则为 false。

说明

在 NavMesh 中追踪一条直线路径指向目标位置,而不移动特工。

此函数沿特工位置和指定目标位置之间的“射线”追踪路径。如果沿线遇到障碍,则返回 True 值,并将障碍物的位置和其他详细信息存储在 hit 参数中。可以使用此函数检查角色和目标对象之间是否存在明确的射击或视线。此函数优于类似的 Physics.Raycast,因为线迹线以使用导航网格的更简单的方式执行,并且处理开销较低。

using UnityEngine;
using UnityEngine.AI;

public class ExampleClass : MonoBehaviour { public Transform target; private NavMeshAgent agent;

void Start() { agent = GetComponent<NavMeshAgent>(); }

void Update() { NavMeshHit hit; if (!agent.Raycast(target.position, out hit)) { // Target is "visible" from our position. } } }