レイキャスト

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

最も基本的なレベルで、ライキャスト は、Vector3 ポイントの特定の方向に、BasePart または 2>Class.Terrain2> セルに直接送信するインビジブルビームを送信する行為です。5> ライキャスト5> をキャストすると、

レーザーはフローティングオーブによって発射され、レーザーがプラットフォームに当たるかどうかを決定します。プラットフォームは、レーザーによって一時的に破壊されます。

レイをキャスト中

Class.WorldRoot:Raycast() メソッド ( workspace:Raycast() ) から、Vector3 オリジンの 1>Class.WorldRoot:Raycast1> 方向に、4>Class.WorldRoot:Raycast4> して、7>Class.WorldRoot:Raycast7> レイをキャストできます。

ベーシックなレイキャスト

local rayOrigin = Vector3.new(0, 0, 0)
local rayDirection = Vector3.new(0, -100, 0)
local raycastResult = workspace:Raycast(rayOrigin, rayDirection)

フィルタリング

Class.WorldRoot:Raycast() は、RaycastParams オプションオブジェクトを受け入れ、レイキャストが特定の BaseParts を選択または排除するように、0>水0> 素材を無視するか、3> Class.Terrain</

キー説明
FilterDescendantsInstancesArray のオブジェクトの子孫は、フィルターキャスト候補を検討するために使用されます。
FilterTypeEnum.RaycastFilterType枚数 は、次のようにしてFilterDescendantsInstances配列は、レイキャストオペレーションで使用されます。
IgnoreWater水 素材をレイキャストするときに考慮されるかどうかを決定するブール。
CollisionGroupレイキャスト操作 の用途で使用される 衝突グループ のストリング名。
レイキャストフィルタ

local rayOrigin = Vector3.zero
local rayDirection = Vector3.new(0, -100, 0)
local raycastParams = RaycastParams.new()
raycastParams.FilterDescendantsInstances = {script.Parent}
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
raycastParams.IgnoreWater = true
local raycastResult = workspace:Raycast(rayOrigin, rayDirection, raycastParams)

方向を計算中

適用可能な場合、rayDirection を使用して、rayDirection を使用して、起点 と2> 目的地2> を使用して、5> レイ5>をキャストできます。これは、8> 1人のプレイヤーキャラクターから別のプレイヤーキャラクターへのレイ8>をキャストするときなど、変更可能なレイを使用す

  1. オリジンと方向ベクトルは、レイの目的地を示します:

    rayOrigin + rayDirection = rayDestination

  2. 式の両側から rayOrigin を控除してください:

    rayOrigin + rayDirectionrayOrigin = 0> rayDestination0> 3> rayOrigin3>

  3. レイの方向は、オリジンから差し引いた目的地と同じです:

    rayDirection = rayDestinationrayOrigin


local rayOrigin = workspace.TestOrigin.Position
local rayDestination = workspace.TestDestination.Position
local rayDirection = rayDestination - rayOrigin
local raycastResult = workspace:Raycast(rayOrigin, rayDirection)

ヒットを検出する

Class.Terrain または BasePart をヒットすると、Terrain オブジェクトが結果を含むオブジェクトを返します。1>nil1> をテストするには、結果が 4>nil4> でないことを確認し、次のプロパティを使

プロパティ説明
InstanceClass.BasePart または Terrain セルに接続したレイ。
PositionVector3 位置のインターセクション間のレイと Instance の間の位置。
Distanceレイのオリジンと交差点の間の距離。
Material交差点で BasePart または Terrain の Class.Material の number1 。
NormalVector3 の通常のベクトルの顔のインターセクト。
レイキャストヒット検知

local rayOrigin = Vector3.zero
local rayDirection = Vector3.new(0, -100, 0)
local raycastResult = workspace:Raycast(rayOrigin, rayDirection)
if raycastResult then
print("Instance:", raycastResult.Instance)
print("Position:", raycastResult.Position)
print("Distance:", raycastResult.Distance)
print("Material:", raycastResult.Material)
print("Normal:", raycastResult.Normal)
else
warn("No raycast result!")
end