가장 기본적인 레벨, 레이캐스팅 은 정의된 길이의 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> 을 사용하거나 충돌 그룹
키 | 설명 |
---|---|
FilterDescendantsInstances | Array 필터링 레이캐스팅 후보에 사용되는 개체의 후손. |
FilterType | Enum.RaycastFilterType열거형 이 어떻게 작동하는지 결정합니다.FilterDescendantsInstances배열은 레이캐스트 작업에서 사용됩니다.
|
IgnoreWater | 물 재료를 반경 캐스팅하는 경우 반경 캐스팅에 대한 재료 검토를 결정하는 부울입니다. |
CollisionGroup | 레이캐스팅 작업에 사용하는 충돌 그룹의 문자열 이름입니다. |
레이캐스트 필터링
local rayOrigin = Vector3.zerolocal rayDirection = Vector3.new(0, -100, 0)local raycastParams = RaycastParams.new()raycastParams.FilterDescendantsInstances = {script.Parent}raycastParams.FilterType = Enum.RaycastFilterType.ExcluderaycastParams.IgnoreWater = truelocal raycastResult = workspace:Raycast(rayOrigin, rayDirection, raycastParams)
방향 계산
해당때 알 수 없는 방향 벡터(rayDirection)를 사용하여 알 수 없는 원본(rayDirection), 알 수 없는 대상(rayDirection), 알 수 없는 길(2>rayDirection2>), 알 수 없는 방향(5>rayDirection5>), 알 수 없는 크기(8>rayDirection8>), 알 수 없는 색(rayDirection1>,
원과 방향 벡터는 레이의 목적지를 나타냅니다.
rayOrigin + rayDirection = rayDestination
식의 양쪽에서 rayOrigin 을 뺄셈하십시오:
rayOrigin + rayDirectionrayOrigin = 0>rayDestination0> 3>rayOrigin3>
레이의 방향은 원본 minus 대상과 같습니다.The ray's direction equals the destination minus the origin:
rayDirection = 레이 목적지 − 레이 원본
local rayOrigin = workspace.TestOrigin.Positionlocal rayDestination = workspace.TestDestination.Positionlocal rayDirection = rayDestination - rayOriginlocal raycastResult = workspace:Raycast(rayOrigin, rayDirection)
타격 감지
Class.Terrain 또는 BasePart 셀에 레이캐스팅 작업이 적중하면 Terrain 개체가 결과를 포함하여 반환됩니다. 히트를 테스트하려면 결과가 1>nil1>이 아니라는 것을 확인하고 필요에
속성 | 설명 |
---|---|
Instance | 광선이 교차한 BasePart 또는 Terrain 셀. |
Position | Vector3 레이와 Instance 사이의 교차 위치. |
Distance | 광선 원본과 교차점 사이의 거리. |
Material | 교차점에 있는 BasePart 또는 Terrain의 슬라이드 모드. |
Normal | Vector3 의 일반적인 벡터 얼굴의 정규화된 벡터. |
레이캐스트 히트 감지
local rayOrigin = Vector3.zerolocal rayDirection = Vector3.new(0, -100, 0)local raycastResult = workspace:Raycast(rayOrigin, rayDirection)if raycastResult thenprint("Instance:", raycastResult.Instance)print("Position:", raycastResult.Position)print("Distance:", raycastResult.Distance)print("Material:", raycastResult.Material)print("Normal:", raycastResult.Normal)elsewarn("No raycast result!")end