배우기
엔진 클래스
WorldRoot
만들 수 없음

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


요약
메서드
ArePartsTouchingOthers(partList: Instances,overlapIgnored: number):boolean
Blockcast(cframe: CFrame,size: Vector3,direction: Vector3,params: RaycastParams):RaycastResult?
BulkMoveTo(partList: Instances,cframeList: {any},eventMode: Enum.BulkMoveMode):()
FindPartOnRay(ray: Ray,ignoreDescendantsInstance: Instance,terrainCellsAreCubes: boolean,ignoreWater: boolean):Tuple
사용되지 않음
findPartOnRay(ray: Ray,ignoreDescendantsInstance: Instance,terrainCellsAreCubes: boolean,ignoreWater: boolean):Tuple
사용되지 않음
FindPartOnRayWithIgnoreList(ray: Ray,ignoreDescendantsTable: Instances,terrainCellsAreCubes: boolean,ignoreWater: boolean):Tuple
사용되지 않음
FindPartOnRayWithWhitelist(ray: Ray,whitelistDescendantsTable: Instances,ignoreWater: boolean):Tuple
사용되지 않음
FindPartsInRegion3(region: Region3,ignoreDescendantsInstance: Instance,maxParts: number):{BasePart}
사용되지 않음
findPartsInRegion3(region: Region3,ignoreDescendantsInstance: Instance,maxParts: number):{BasePart}
사용되지 않음
FindPartsInRegion3WithIgnoreList(region: Region3,ignoreDescendantsTable: Instances,maxParts: number):{BasePart}
사용되지 않음
FindPartsInRegion3WithWhiteList(region: Region3,whitelistDescendantsTable: Instances,maxParts: number):{BasePart}
사용되지 않음
GetPartBoundsInBox(cframe: CFrame,size: Vector3,overlapParams: OverlapParams):{BasePart}
GetPartBoundsInRadius(position: Vector3,radius: number,overlapParams: OverlapParams):{BasePart}
IKMoveTo(part: BasePart,target: CFrame,translateStiffness: number,rotateStiffness: number,collisionsMode: Enum.IKCollisionsMode):()
IsRegion3Empty(region: Region3,ignoreDescendentsInstance: Instance):boolean
사용되지 않음
IsRegion3EmptyWithIgnoreList(region: Region3,ignoreDescendentsTable: Instances):boolean
사용되지 않음
Raycast(origin: Vector3,direction: Vector3,raycastParams: RaycastParams):RaycastResult?
Spherecast(position: Vector3,radius: number,direction: Vector3,params: RaycastParams):RaycastResult?
StepPhysics(dt: number,parts: Instances):()
상속된 멤버

API 참조
메서드
ArePartsTouchingOthers
시뮬레이션 액세스
WorldRoot:ArePartsTouchingOthers(
partList:Instances, overlapIgnored:number
매개 변수
partList:Instances
overlapIgnored:number
기본값: 0.000199999995
반환
코드 샘플
접촉하는 부품 확인
local part1 = Instance.new("Part")
part1.Name = "Part1"
part1.Anchored = true
part1.Transparency = 0.5
part1.Color = Color3.fromRGB(185, 100, 38)
part1.Size = Vector3.new(2, 2, 2)
part1.Position = Vector3.new(0, 4, 0)
part1.Parent = workspace
local part2 = Instance.new("Part")
part2.Name = "Part2"
part2.Anchored = true
part2.Transparency = 0.5
part2.Color = Color3.fromRGB(200, 10, 0)
part2.Size = Vector3.new(2, 2, 2)
part2.Position = Vector3.new(0, 5, 0)
part2.Parent = workspace
local partList = { part1 }
print(workspace:ArePartsTouchingOthers(partList, 0)) -- 참
print(workspace:ArePartsTouchingOthers(partList, 0.999)) -- 참
print(workspace:ArePartsTouchingOthers(partList, 1)) -- 거짓

Blockcast
병렬 쓰기
시뮬레이션 액세스
WorldRoot:Blockcast(
cframe:CFrame, size:Vector3, direction:Vector3, params:RaycastParams
매개 변수
cframe:CFrame
size:Vector3
direction:Vector3
기본값: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
코드 샘플
블록캐스팅
local Workspace = game:GetService("Workspace")
local function castBlock()
-- 캐스팅 블록 모양의 초기 위치와 회전
local originCFrame = CFrame.new(Vector3.new(0, 50, 0))
-- 캐스팅 블록 모양의 크기
local size = Vector3.new(6, 3, 9)
-- 블록이 캐스팅되는 방향
local direction = -Vector3.yAxis
-- 캐스트의 최대 거리
local distance = 50
-- 블록을 캐스팅하고 그 시각화를 생성합니다.
local raycastResult = Workspace:Blockcast(originCFrame, size, direction * distance)
if raycastResult then
-- RaycastResult가 존재할 경우 모든 속성을 출력합니다.
print(`블록이 교차한 객체: {raycastResult.Instance:GetFullName()}`)
print(`교차 위치: {raycastResult.Position}`)
print(`블록의 초기 위치와 결과 간의 거리: {raycastResult.Distance}`)
print(`교차된 면의 법선 벡터: {raycastResult.Normal}`)
print(`충돌한 재질: {raycastResult.Material.Name}`)
else
print("충돌한 것이 없습니다")
end
end
-- 2초마다 블록을 계속 캐스팅합니다.
while true do
castBlock()
task.wait(2)
end

BulkMoveTo
시뮬레이션 액세스
WorldRoot:BulkMoveTo(
partList:Instances, cframeList:{any}, eventMode:Enum.BulkMoveMode
):()
매개 변수
partList:Instances
cframeList:{any}
기본값: "FireAllEvents"
반환
()

FindPartOnRay
사용되지 않음

findPartOnRay
사용되지 않음

FindPartOnRayWithIgnoreList
사용되지 않음

FindPartOnRayWithWhitelist
사용되지 않음

FindPartsInRegion3
사용되지 않음

findPartsInRegion3
사용되지 않음

FindPartsInRegion3WithIgnoreList
사용되지 않음

FindPartsInRegion3WithWhiteList
사용되지 않음

GetPartBoundsInBox
병렬 쓰기
시뮬레이션 액세스
WorldRoot:GetPartBoundsInBox(
cframe:CFrame, size:Vector3, overlapParams:OverlapParams
매개 변수
cframe:CFrame
size:Vector3
overlapParams:OverlapParams
기본값: "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
반환

GetPartBoundsInRadius
병렬 쓰기
시뮬레이션 액세스
WorldRoot:GetPartBoundsInRadius(
position:Vector3, radius:number, overlapParams:OverlapParams
매개 변수
position:Vector3
radius:number
overlapParams:OverlapParams
기본값: "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
반환

GetPartsInPart
병렬 쓰기
시뮬레이션 액세스
WorldRoot:GetPartsInPart(
part:BasePart, overlapParams:OverlapParams
매개 변수
overlapParams:OverlapParams
기본값: "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
반환

IKMoveTo
플러그인 보안
시뮬레이션 액세스
WorldRoot:IKMoveTo(
part:BasePart, target:CFrame, translateStiffness:number, rotateStiffness:number, collisionsMode:Enum.IKCollisionsMode
):()
매개 변수
target:CFrame
translateStiffness:number
기본값: 0.5
rotateStiffness:number
기본값: 0.5
collisionsMode:Enum.IKCollisionsMode
기본값: "OtherMechanismsAnchored"
반환
()

IsRegion3Empty
사용되지 않음

IsRegion3EmptyWithIgnoreList
사용되지 않음

Raycast
병렬 쓰기
시뮬레이션 액세스
WorldRoot:Raycast(
origin:Vector3, direction:Vector3, raycastParams:RaycastParams
매개 변수
origin:Vector3
direction:Vector3
raycastParams:RaycastParams
기본값: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
코드 샘플
레이캐스팅
local Workspace = game:GetService("Workspace")
local function castRay()
-- 광선의 시작 지점
local originPosition = Vector3.new(0, 50, 0)
-- 광선이 발사되는 방향
local direction = -Vector3.yAxis
-- 광선의 최대 거리
local distance = 50
-- 광선을 발사하고 시각화를 생성합니다
local raycastResult = Workspace:Raycast(originPosition, direction * distance)
if raycastResult then
-- RaycastResult가 존재하는 경우 모든 속성을 인쇄합니다
print(`Ray intersected with: {raycastResult.Instance:GetFullName()}`)
print(`Intersection position: {raycastResult.Position}`)
print(`Distance between ray origin and result: {raycastResult.Distance}`)
print(`The normal vector of the intersected face: {raycastResult.Normal}`)
print(`Material hit: {raycastResult.Material.Name}`)
else
print("히트된 것이 없습니다")
end
end
-- 매 2초마다 계속해서 광선을 발사합니다
while true do
castRay()
task.wait(2)
end

Shapecast
시뮬레이션 액세스
WorldRoot:Shapecast(
part:BasePart, direction:Vector3, params:RaycastParams
매개 변수
direction:Vector3
기본값: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"

Spherecast
병렬 쓰기
시뮬레이션 액세스
WorldRoot:Spherecast(
position:Vector3, radius:number, direction:Vector3, params:RaycastParams
매개 변수
position:Vector3
radius:number
direction:Vector3
기본값: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
코드 샘플
구형 캐스팅
local Workspace = game:GetService("Workspace")
local function castSphere()
-- 구형 모양의 캐스트 초기 위치
local originPosition = Vector3.new(0, 50, 0)
-- 캐스트 구형 모양의 반지름 (스와드)
local radius = 10
-- 구가 캐스팅되는 방향
local direction = -Vector3.yAxis
-- 캐스트의 최대 거리
local distance = 50
-- 구를 캐스팅하고 시각화를 생성합니다
local raycastResult = Workspace:Spherecast(originPosition, radius, direction * distance)
if raycastResult then
-- RaycastResult가 존재하면 모든 속성을 출력합니다
print(`구가 교차한 객체: {raycastResult.Instance:GetFullName()}`)
print(`교차 지점: {raycastResult.Position}`)
print(`구의 초기 위치와 결과 간의 거리: {raycastResult.Distance}`)
print(`교차된 면의 법선 벡터: {raycastResult.Normal}`)
print(`충돌한 물질: {raycastResult.Material.Name}`)
else
print("아무것도 충돌하지 않았습니다")
end
end
-- 매 2초마다 구를 계속 캐스팅합니다
while true do
castSphere()
task.wait(2)
end

StepPhysics
플러그인 보안
WorldRoot:StepPhysics(
dt:number, parts:Instances
):()
매개 변수
parts:Instances
기본값: "{}"
반환
()
코드 샘플
스텝 물리학
local RunService = game:GetService("RunService")
-- 시뮬레이션할 부품의 선택적 배열; 그렇지 않으면 모든 부품이 시뮬레이션됩니다.
local partsToSimulate = {
workspace.Part,
}
local function simulateParts(duration)
local time = 0.0
local stepJob
stepJob = RunService.RenderStepped:Connect(function(dt)
if time + dt > duration then
dt = duration - time
end
workspace:StepPhysics(dt, partsToSimulate)
time = time + dt
if time >= duration then
stepJob:Disconnect()
end
end)
end
-- 5초 동안 작업 공간 부품을 시뮬레이션하고 각 프레임마다 부품을 스텝합니다.
simulateParts(5.0)

©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.