语言中文
  • C#

NavMeshAgent.Raycast

声明

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. } } }

Did you find this page useful? Please give it a rating: