레이캐스팅

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

가장 기본적인 레벨, 레이캐스팅 은 정의된 길이의 Vector3에서 특정 방향으로 보이지 않는 광선을 발사하는 행위입니다. 캐스트 된 후, BasePart 또는 1>Class.Terrain1> 셀에 광

레이저는 부유 구체에 의해 발사되며 레이캐스팅은 레이저가 플랫폼에 적중하는지 여부를 결정합니다. 레이캐스팅에 의해 플랫폼이 임시로 파괴됩니다.

광선 캐스팅

Class.WorldRoot:Raycast() 메서드(workspace:Raycast()), Vector3 원본의 방향에서 1>Class.WorldRoot:Raycast()1> 레이캐스트를 캐스트할 수 있습니다.

기본 레이캐스트

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

필터링

WorldRoot:Raycast() 는 선택적인 RaycastParams 개체를 수락하여 레이캐스트가 특정 BaseParts , 물을 무시하고 테리ン 0> Class.Terrain0> 을 사용하거나 충돌 그룹

설명
FilterDescendantsInstancesArray 필터링 레이캐스팅 후보에 사용되는 개체의 후손.
FilterTypeEnum.RaycastFilterType열거형 이 어떻게 작동하는지 결정합니다.FilterDescendantsInstances배열은 레이캐스트 작업에서 사용됩니다.
  • Class.BasePart 배열에 있는 개체의 후손이 아닌 모든 Class.BasePart 은 제외됩니다. 모든 Class.BasePart 은 제외됩니다.
  • Include 배열에 있는 개체의 하위인 경우에만 고려됩니다.
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), 알 수 없는 대상(rayDirection), 알 수 없는 길(2>rayDirection2>), 알 수 없는 방향(5>rayDirection5>), 알 수 없는 크기(8>rayDirection8>), 알 수 없는 색(rayDirection1>,

  1. 원과 방향 벡터는 레이의 목적지를 나타냅니다.

    rayOrigin + rayDirection = rayDestination

  2. 식의 양쪽에서 rayOrigin 을 뺄셈하십시오:

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

  3. 레이의 방향은 원본 minus 대상과 같습니다.The ray's direction equals the destination minus the origin:

    rayDirection = 레이 목적지레이 원본


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>이 아니라는 것을 확인하고 필요에

속성설명
Instance광선이 교차한 BasePart 또는 Terrain 셀.
PositionVector3 레이와 Instance 사이의 교차 위치.
Distance광선 원본과 교차점 사이의 거리.
Material교차점에 있는 BasePart 또는 Terrain의 슬라이드 모드.
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