Path

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

作成できません
複製されていません

パス オブジェクトは、PathfindingService:CreatePath() によって作成されたパスの結果を保存します。

パスオブジェクトが作成されると

Class.パスath:ComputeAsync()|ComputeAsync() 、Path オブジェクトには、GetWaypoints() メソッドがあり、シーケンスでポイントを表示するために、ポイントの開始から最終までの一覧を返します。

最後に、 Path オブジェクトは、 Class.Path.Blocked イベントに接続できます。このイベントは、パスの存在中に、パスがブロックされる場合に発動します。これは、パスがパスの存在の前には、キャラクターの移動によって発生することがあります。

概要

プロパティ

方法

イベント

  • Blocked(blockedWaypointIdx : number):RBXScriptSignal

    計算されたパスがブロックされると、ファイアを起動します。

  • Unblocked(unblockedWaypointIdx : number):RBXScriptSignal

    ブロックされていた計算されたパスがアンブロックされるときにファイアを起動します。

プロパティ

読み取り専用
複製されていません
並列読み取り

生成された Path の成功。

方法

GetWaypoints

この関数は、<a href="/reference/engine/datatypes">データタイプ</a>、<a href="/reference/engine/datatypes">パスワイヤーポイント</a>、<a href="/reference/engine/datatypes">パスワイヤーポイント</a>、<a href="/reference/engine/datatypes">パスワイヤーポイント</a>、<a href="/reference/engine/datatypes">パスワイヤーポイント</a>、<a href="/reference/engine/datatypes">パスワイヤーポイント</a>、<a href="/reference/enge

配列の各ワープポイントは、Vector3 ポジションとaction を指定します。この PathWaypoint が到達すると、配列はワープポイントの順序で配置されます。パス開始からパス終了までのワープポイントの順序で構成されています。

パスが計算できなかった場合、この関数は空の配列を返します。


戻り値

Datatype.PathWaypoint|PathWaypoints パス開始からパス終了までの配列。

コードサンプル

Get Path Waypoints

local PathfindingService = game:GetService("PathfindingService")
local path = PathfindingService:CreatePath()
local PATH_START = Vector3.new(0, 1, 0)
local PATH_END = Vector3.new(100, 1, 25)
path:ComputeAsync(PATH_START, PATH_END)
if path.Status == Enum.PathStatus.Success then
local waypoints = path:GetWaypoints()
for _, waypoint in pairs(waypoints) do
print(waypoint.Position)
end
end

CheckOcclusionAsync

イールド

この関数は、 開始 と指定された方位点から開始しているパスがブロックされているかどうかをチェックします。

ブロックされている場合、最初のオクローションポイントを返します。 -1 がない場合は、 開始 が 0 未満のか、Path のオクローションポイントの数より大きいため、エラーが返されます。

パラメータ

start: number

戻り値

ComputeAsync

void
イールド

この関数は、Path をスタートポジションからエンドポジションに計算します。この関数は、パスが作成されると自動的に呼び出されず、パスが更新されるたびに呼び出される必要があります。

パスが計算されると、パスをフォローすると、キャラクターをパスに沿って移動できる一連のウェイポイントがあります。これらのポイントは、Path:GetWaypoints() 関数で集計されます。

パラメータ

start: Vector3

計算されたパスが開始する世界の位置。

finish: Vector3

計算されたパスが終了する世界の位置。


戻り値

void

コードサンプル

Using the Pathfinding Service

local PathfindingService = game:GetService("PathfindingService")
local agentParams = {
AgentRadius = 2.0,
AgentHeight = 5.0,
AgentCanJump = false,
}
local currentWaypointIdx = 1
local path = PathfindingService:CreatePath(agentParams)
local humanoidRootPart = script.Parent:FindFirstChild("HumanoidRootPart")
local targetPosition = Vector3.new(50, 0, 50)
path:ComputeAsync(humanoidRootPart.Position, targetPosition)
-- When the path is blocked...
local function OnPathBlocked(blockedWaypointIdx)
-- Check if the obstacle is further down the path
if blockedWaypointIdx > currentWaypointIdx then
-- Recompute the path
path:ComputeAsync(humanoidRootPart.Position, targetPosition)
if path.Status == Enum.PathStatus.Success then
-- Retrieve update waypoint list with path:GetWaypoints()
-- and Continue walking towards target
else
-- Error, path not found
end
end
end
path.Blocked:Connect(OnPathBlocked)

イベント

Blocked

計算されたパスがブロックされるときにファイアを起動します。パスは、エージェントが逃げるときにパスの後ろの場所にブロックされる場合があります。たとえば、エージェントが逃げるときにパスの前方の進行状況を確認するには、ブロックされたパスを処理するを参照してください。

パラメータ

blockedWaypointIdx: number

Unblocked

ブロックされた計算されたパスがアンブロックされるときに発動します。これは、ブロックされたパスがエージェントの後ろのどこかになることがあり、損傷に対する反応を必要としないために、ブロックされたパスの進行状況を確認するために 「ブロックされたパスを処理する」を参照してください。

パラメータ

unblockedWaypointIdx: number