Aprender
Clase de motor
WorldRoot
No creable

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.


Resumen
Métodos
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
Obsoleto
findPartOnRay(ray: Ray,ignoreDescendantsInstance: Instance,terrainCellsAreCubes: boolean,ignoreWater: boolean):Tuple
Obsoleto
FindPartOnRayWithIgnoreList(ray: Ray,ignoreDescendantsTable: Instances,terrainCellsAreCubes: boolean,ignoreWater: boolean):Tuple
Obsoleto
FindPartOnRayWithWhitelist(ray: Ray,whitelistDescendantsTable: Instances,ignoreWater: boolean):Tuple
Obsoleto
FindPartsInRegion3(region: Region3,ignoreDescendantsInstance: Instance,maxParts: number):{BasePart}
Obsoleto
findPartsInRegion3(region: Region3,ignoreDescendantsInstance: Instance,maxParts: number):{BasePart}
Obsoleto
FindPartsInRegion3WithIgnoreList(region: Region3,ignoreDescendantsTable: Instances,maxParts: number):{BasePart}
Obsoleto
FindPartsInRegion3WithWhiteList(region: Region3,whitelistDescendantsTable: Instances,maxParts: number):{BasePart}
Obsoleto
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
Obsoleto
IsRegion3EmptyWithIgnoreList(region: Region3,ignoreDescendentsTable: Instances):boolean
Obsoleto
Raycast(origin: Vector3,direction: Vector3,raycastParams: RaycastParams):RaycastResult?
Spherecast(position: Vector3,radius: number,direction: Vector3,params: RaycastParams):RaycastResult?
StepPhysics(dt: number,parts: Instances):()
Miembros heredados
Heredado por

Referencia API
Métodos
ArePartsTouchingOthers
Acceso a la simulación
WorldRoot:ArePartsTouchingOthers(
partList:Instances, overlapIgnored:number
Parámetros
partList:Instances
overlapIgnored:number
Valor predeterminado: 0.000199999995
Devuelve
Muestras de código
Comprobando Partes Táctiles
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)) -- Verdadero
print(workspace:ArePartsTouchingOthers(partList, 0.999)) -- Verdadero
print(workspace:ArePartsTouchingOthers(partList, 1)) -- Falso

Blockcast
Escribir paralelo
Acceso a la simulación
WorldRoot:Blockcast(
cframe:CFrame, size:Vector3, direction:Vector3, params:RaycastParams
Parámetros
cframe:CFrame
size:Vector3
direction:Vector3
Valor predeterminado: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Devuelve
Muestras de código
Lanzamiento de bloques
local Workspace = game:GetService("Workspace")
local function castBlock()
-- La posición y rotación inicial de la forma del bloque lanzado
local originCFrame = CFrame.new(Vector3.new(0, 50, 0))
-- El tamaño de la forma del bloque lanzado
local size = Vector3.new(6, 3, 9)
-- La dirección en la que se lanza el bloque
local direction = -Vector3.yAxis
-- La distancia máxima del lanzamiento
local distance = 50
-- Lanza el bloque y crea una visualización de este
local raycastResult = Workspace:Blockcast(originCFrame, size, direction * distance)
if raycastResult then
-- Imprime todas las propiedades del RaycastResult si existe
print(`El bloque intersecó con: {raycastResult.Instance:GetFullName()}`)
print(`Posición de intersección: {raycastResult.Position}`)
print(`Distancia entre la posición inicial del bloque y el resultado: {raycastResult.Distance}`)
print(`El vector normal de la cara intersecada: {raycastResult.Normal}`)
print(`Material golpeado: {raycastResult.Material.Name}`)
else
print("No se golpeó nada")
end
end
-- Lanzar continuamente un bloque cada 2 segundos
while true do
castBlock()
task.wait(2)
end

BulkMoveTo
Acceso a la simulación
WorldRoot:BulkMoveTo(
partList:Instances, cframeList:{any}, eventMode:Enum.BulkMoveMode
):()
Parámetros
partList:Instances
cframeList:{any}
Valor predeterminado: "FireAllEvents"
Devuelve
()

FindPartOnRay
Obsoleto

findPartOnRay
Obsoleto

FindPartOnRayWithIgnoreList
Obsoleto

FindPartOnRayWithWhitelist
Obsoleto

FindPartsInRegion3
Obsoleto

findPartsInRegion3
Obsoleto

FindPartsInRegion3WithIgnoreList
Obsoleto

FindPartsInRegion3WithWhiteList
Obsoleto

GetPartBoundsInBox
Escribir paralelo
Acceso a la simulación
WorldRoot:GetPartBoundsInBox(
cframe:CFrame, size:Vector3, overlapParams:OverlapParams
Parámetros
cframe:CFrame
size:Vector3
overlapParams:OverlapParams
Valor predeterminado: "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Devuelve

GetPartBoundsInRadius
Escribir paralelo
Acceso a la simulación
WorldRoot:GetPartBoundsInRadius(
position:Vector3, radius:number, overlapParams:OverlapParams
Parámetros
position:Vector3
radius:number
overlapParams:OverlapParams
Valor predeterminado: "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Devuelve

GetPartsInPart
Escribir paralelo
Acceso a la simulación
WorldRoot:GetPartsInPart(
part:BasePart, overlapParams:OverlapParams
Parámetros
overlapParams:OverlapParams
Valor predeterminado: "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Devuelve

IKMoveTo
Seguridad del plugin
Acceso a la simulación
WorldRoot:IKMoveTo(
part:BasePart, target:CFrame, translateStiffness:number, rotateStiffness:number, collisionsMode:Enum.IKCollisionsMode
):()
Parámetros
target:CFrame
translateStiffness:number
Valor predeterminado: 0.5
rotateStiffness:number
Valor predeterminado: 0.5
collisionsMode:Enum.IKCollisionsMode
Valor predeterminado: "OtherMechanismsAnchored"
Devuelve
()

IsRegion3Empty
Obsoleto

IsRegion3EmptyWithIgnoreList
Obsoleto

Raycast
Escribir paralelo
Acceso a la simulación
WorldRoot:Raycast(
origin:Vector3, direction:Vector3, raycastParams:RaycastParams
Parámetros
origin:Vector3
direction:Vector3
raycastParams:RaycastParams
Valor predeterminado: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Devuelve
Muestras de código
Trazado de rayos
local Workspace = game:GetService("Workspace")
local function castRay()
-- El punto de origen del rayo
local originPosition = Vector3.new(0, 50, 0)
-- La dirección en la que se lanza el rayo
local direction = -Vector3.yAxis
-- La distancia máxima del rayo
local distance = 50
-- Lanza el rayo y crea una visualización de él
local raycastResult = Workspace:Raycast(originPosition, direction * distance)
if raycastResult then
-- Imprime todas las propiedades del RaycastResult si existe
print(`El rayo intersectó con: {raycastResult.Instance:GetFullName()}`)
print(`Posición de la intersección: {raycastResult.Position}`)
print(`Distancia entre el origen del rayo y el resultado: {raycastResult.Distance}`)
print(`El vector normal de la cara intersectada: {raycastResult.Normal}`)
print(`Material golpeado: {raycastResult.Material.Name}`)
else
print("Nada fue golpeado")
end
end
-- Lanza continuamente un rayo cada 2 segundos
while true do
castRay()
task.wait(2)
end

Shapecast
Acceso a la simulación
WorldRoot:Shapecast(
part:BasePart, direction:Vector3, params:RaycastParams
Parámetros
direction:Vector3
Valor predeterminado: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Devuelve

Spherecast
Escribir paralelo
Acceso a la simulación
WorldRoot:Spherecast(
position:Vector3, radius:number, direction:Vector3, params:RaycastParams
Parámetros
position:Vector3
radius:number
direction:Vector3
Valor predeterminado: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Devuelve
Muestras de código
Casting de Esfera
local Workspace = game:GetService("Workspace")
local function castSphere()
-- La posición inicial de la forma esférica lanzada
local originPosition = Vector3.new(0, 50, 0)
-- El radio de la forma esférica lanzada en studs
local radius = 10
-- La dirección en la que se lanza la esfera
local direction = -Vector3.yAxis
-- La distancia máxima del lanzamiento
local distance = 50
-- Lanza la esfera y crea una visualización de la misma
local raycastResult = Workspace:Spherecast(originPosition, radius, direction * distance)
if raycastResult then
-- Imprimir todas las propiedades del RaycastResult si existe
print(`La esfera intersectó con: {raycastResult.Instance:GetFullName()}`)
print(`Posición de intersección: {raycastResult.Position}`)
print(`Distancia entre la posición inicial de la esfera y el resultado: {raycastResult.Distance}`)
print(`El vector normal de la cara intersectada: {raycastResult.Normal}`)
print(`Material golpeado: {raycastResult.Material.Name}`)
else
print("Nada fue impactado")
end
end
-- Lanzar continuamente una esfera cada 2 segundos
while true do
castSphere()
task.wait(2)
end

StepPhysics
Seguridad del plugin
WorldRoot:StepPhysics(
dt:number, parts:Instances
):()
Parámetros
parts:Instances
Valor predeterminado: "{}"
Devuelve
()
Muestras de código
Simulación de Física
local RunService = game:GetService("RunService")
-- Array opcional de partes a simular; de lo contrario, se simularán todas las partes
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
-- Simula las partes del espacio de trabajo durante 5 segundos, simulando las partes una vez por cuadro
simulateParts(5.0)

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.