WorldRoot

WorldRoot : Instance

Overview

3D ๊ณต๊ฐ„์—์„œ ๋ฌผ์ฒด๋ฅผ ๊ฐ์ง€ํ•˜๊ฑฐ๋‚˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.

Properties

Methods

Raycast

์ฃผ์–ด์ง„ ์‹œ์ž‘์ (origin)๊ณผ ๋ฐฉํ–ฅ(direction)์„ ๊ธฐ์ค€์œผ๋กœ ๋ณด์ด์ง€ ์•Š๋Š” ๊ด‘์„ (ray)์„ ๋ฐœ์‚ฌํ•ด, ๊ฒฝ๋กœ์ƒ์˜ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ RaycastResult ๊ฐ์ฒด๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

ํ•„์š”ํ•  ๊ฒฝ์šฐ RaycastParams๋ฅผ ์„ค์ •ํ•˜์—ฌ ๊ฐ์ง€ ๋Œ€์ƒ์ด๋‚˜ ์กฐ๊ฑด์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, RaycastParams๋ฅผ ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด ์ ์šฉ๋˜์–ด ๋ชจ๋“  ํŒŒํŠธ๊ฐ€ ๊ฐ์ง€ ๋Œ€์ƒ์ด ๋ฉ๋‹ˆ๋‹ค.

Parameters

Vector3 InOrigin

๊ด‘์„ (ray)์ด ๋ฐœ์‚ฌ๋˜๋Š” ์ถœ๋ฐœ ์ง€์ ์ž…๋‹ˆ๋‹ค.

Vector3 InDirection

๊ด‘์„ ์˜ ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฒกํ„ฐ์ด๋ฉฐ, ์ด ๋ฒกํ„ฐ์˜ ๊ธธ์ด(ํฌ๊ธฐ)์— ๋”ฐ๋ผ ๊ฐ์ง€ ๊ฐ€๋Šฅํ•œ ๊ฑฐ๋ฆฌ๋„ ํ•จ๊ป˜ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

RaycastParams InRaycastParams

์–ด๋–ค ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊ฐ์ง€ํ• ์ง€ ์กฐ๊ฑด์„ ์„ค์ • ํ•  ์ˆ˜ ์žˆ๋Š” ์„ค์ • ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

RaycastParams๋ฅผ ์ด์šฉํ•˜์—ฌ ํŠน์ • ํŒŒํŠธ๋ฅผ ์ œ์™ธํ•˜๊ฑฐ๋‚˜, ์ถฉ๋Œ ๊ทธ๋ฃน์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ’์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด ์ ์šฉ๋˜์–ด, ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๊ฐ์ง€ ๋Œ€์ƒ์ด ๋ฉ๋‹ˆ๋‹ค.

Return

RaycastResult

Code Samples

local Workspace = game:GetService("Workspace")

local Origin = Vector3.new(0, 50, 0)
local Direction = Vector3.new(0, 0, -3000)

local RaycastParams = RaycastParams.new()
RaycastParams.FilterType = Enum.RaycastFilterType.Exclude 
RaycastParams.FilterDescendantsInstances = 
{ 
    Workspace.Part
}

local Result = Workspace:Raycast(Origin, Direction, RaycastParams)
if Result then
    print("Result Position : ", Result.Position)
    print("Result Name : ", Result.Instance.Name)
else
    print("Result nil")
end

GetPartBoundsInBox

์ฃผ์–ด์ง„ ์ค‘์‹ฌ ์œ„์น˜(Center)์™€ ํฌ๊ธฐ(Size)๋กœ ์ •์˜๋œ ๋ฐ•์Šค ํ˜•ํƒœ์˜ ๊ณต๊ฐ„์—์„œ, ๊ทธ ์˜์—ญ๊ณผ ๊ฒน์น˜๋Š” ํŒŒํŠธ๋“ค์„ ์ฐพ์•„ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ์‹ค์ œ ํŒŒํŠธ์˜ ํ˜•์ƒ์ด ์•„๋‹Œ ์™ธ๊ณฝ ๊ฒฝ๊ณ„ ์ƒ์ž(Bounding Box)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํŒ๋‹จ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ตฌํ˜•, ์›ํ†ตํ˜•, ๋˜๋Š” ๋ณต์žกํ•œ MeshPart์ฒ˜๋Ÿผ ์ •์œก๋ฉด์ฒด๊ฐ€ ์•„๋‹Œ ํ˜•ํƒœ๋Š” ์ •ํ™•๋„๊ฐ€ ๋‹ค์†Œ ๋‚ฎ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•„ํ„ฐ๋ง ์กฐ๊ฑด์ด๋‚˜ ๊ฐ์ง€ ๋ฒ”์œ„ ๋“ฑ์„ ์„ธ๋ถ€์ ์œผ๋กœ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด OverlapParams๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Parameters

CFrame InCenter

๊ฐ์ง€ํ•  ์˜์—ญ์˜ ์ค‘์‹ฌ ์ขŒํ‘œ์ž…๋‹ˆ๋‹ค.

Vector3 InSize

๋ฐ•์Šค ํ˜•ํƒœ๋กœ ์„ค์ •๋œ ๊ฐ์ง€ ๋ฒ”์œ„์˜ ๊ฐ€๋กœ, ์„ธ๋กœ, ๋†’์ด ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค.

OverlapParams InOverlapParams

์–ด๋–ค ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊ฐ์ง€ํ• ์ง€ ์กฐ๊ฑด์„ ์„ค์ • ํ•  ์ˆ˜ ์žˆ๋Š” ์„ค์ • ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. OverlapParams๋ฅผ ์ด์šฉํ•˜์—ฌ ํŠน์ • ํŒŒํŠธ๋ฅผ ์ œ์™ธํ•˜๊ฑฐ๋‚˜, ์ถฉ๋Œ ๊ทธ๋ฃน์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ’์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด ์ ์šฉ๋˜์–ด, ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๊ฐ์ง€ ๋Œ€์ƒ์ด ๋ฉ๋‹ˆ๋‹ค.

Return

array

Code Samples

local Center = Vector3.new(0, 50, 0)
local Size = Vector3.new(1000, 1000, 1000)
local Cframe = CFrame.new(Center)
local PartsInBox = workspace:GetPartBoundsInBox(Cframe, Size)

for _, obj in ipairs(PartsInBox) do
    print(obj.Name)
end

GetPartBoundsInSphere

Returns an array of parts within a sphere defined by center and radius. Useful for proximity checks and area-of-effect queries. Uses bounding boxes, so complex shapes may be approximated.

Parameters

CFrame InCenter

number InRadius

OverlapParams InOverlapParams

Return

array

Code Samples

GetPartsInPart

Returns an array of parts that overlap with the specified BasePart. Filtering can be customized via OverlapParams to include/exclude certain objects.

Parameters

BasePart InBasePart

OverlapParams InOverlapParams

Return

array

Code Samples

DrawRay

์ฃผ์–ด์ง„ ์‹œ์ž‘์ (origin)๊ณผ ๋ฐฉํ–ฅ(direction)์„ ๊ธฐ์ค€์œผ๋กœ ์ง€์ •ํ•œ ์ƒ‰์ƒ์˜ ๊ด‘์„ ์„ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜์—ฌ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค.

์ฃผ๋กœ ๋””๋ฒ„๊น… ์šฉ๋„๋กœ ํ™œ์šฉ๋˜๋ฉฐ, Raycast์˜ ๋ฐฉํ–ฅ๊ณผ ๋„๋‹ฌ ์œ„์น˜๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ํŒŒ์•…ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

Parameters

Vector3 InOrigin

๊ด‘์„ (ray)์ด ๋ฐœ์‚ฌ๋˜๋Š” ์ถœ๋ฐœ ์ง€์ ์ž…๋‹ˆ๋‹ค.

Vector3 InDirection

๊ด‘์„ ์˜ ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฒกํ„ฐ์ด๋ฉฐ, ์ด ๋ฒกํ„ฐ์˜ ๊ธธ์ด(ํฌ๊ธฐ)์— ๋”ฐ๋ผ ๊ฐ์ง€ ๊ฐ€๋Šฅํ•œ ๊ฑฐ๋ฆฌ๋„ ํ•จ๊ป˜ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

Color3 InColor

๊ด‘์„ ์˜ ์ƒ‰์ƒ์ž…๋‹ˆ๋‹ค.

number InThickness

๊ด‘์„ ์˜ ์„  ๋‘๊ป˜์ž…๋‹ˆ๋‹ค.

number InLifeTime

๊ด‘์„ ์ด ์›”๋“œ์—์„œ ์œ ์ง€๋  ์‹œ๊ฐ„(์ดˆ ๋‹จ์œ„)์ž…๋‹ˆ๋‹ค.

Return

void

Code Samples

local Workspace = game:GetService("Workspace")

local Origin = Vector3.new(0, 50, 0)
local Direction = Vector3.new(0, 0, -1000)
local Color = Color3.fromRGB(255, 0, 0)
local Thickness = 5
local LifeTime = 1.5

Workspace:DrawRay(Origin, Direction, Color, Thickness, LifeTime)

Events

Last updated