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

NavMesh.SetAreaCost

建议更改

成功!

感谢你帮助我们提升 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读来自我们用户的每条建议的更改并会在适用时进行更新。

关闭

提交失败

由于某些原因,你的建议更改未提交。请在几分钟后重新尝试。感谢你抽出时间帮助我们提升 Unity 文档的质量。

关闭

取消

声明

public static void SetAreaCost(int areaIndex, float cost);

参数

areaIndex 要设置的区域索引。
cost 新成本。

描述

为所有代理在指定区域类型的几何体上查找路径设置成本。

这将替换所有代理上的任何自定义区域成本,并为调用此函数后创建的新代理设置默认成本。成本必须大于 1.0。

使用 GetAreaFromName 根据 NavMesh 区域类型的名称查找区域索引。

// ToggleWaterCost
using UnityEngine;
using UnityEngine.AI;

public class ToggleWaterCost : MonoBehaviour { void Update() { if (Input.anyKeyDown) { // Make the water area 10x more costly to traverse. NavMesh.SetAreaCost(NavMesh.GetAreaFromName("water"), 10.0f); } } }

其他资源:区域和成本,了解如何使用不同的区域类型。