Apprendre
Classe de moteur
WorldRoot
Création impossible

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.


Résumé
Méthodes
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
Déprécié
findPartOnRay(ray: Ray,ignoreDescendantsInstance: Instance,terrainCellsAreCubes: boolean,ignoreWater: boolean):Tuple
Déprécié
FindPartOnRayWithIgnoreList(ray: Ray,ignoreDescendantsTable: Instances,terrainCellsAreCubes: boolean,ignoreWater: boolean):Tuple
Déprécié
FindPartOnRayWithWhitelist(ray: Ray,whitelistDescendantsTable: Instances,ignoreWater: boolean):Tuple
Déprécié
FindPartsInRegion3(region: Region3,ignoreDescendantsInstance: Instance,maxParts: number):{BasePart}
Déprécié
findPartsInRegion3(region: Region3,ignoreDescendantsInstance: Instance,maxParts: number):{BasePart}
Déprécié
FindPartsInRegion3WithIgnoreList(region: Region3,ignoreDescendantsTable: Instances,maxParts: number):{BasePart}
Déprécié
FindPartsInRegion3WithWhiteList(region: Region3,whitelistDescendantsTable: Instances,maxParts: number):{BasePart}
Déprécié
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
Déprécié
IsRegion3EmptyWithIgnoreList(region: Region3,ignoreDescendentsTable: Instances):boolean
Déprécié
Raycast(origin: Vector3,direction: Vector3,raycastParams: RaycastParams):RaycastResult?
Spherecast(position: Vector3,radius: number,direction: Vector3,params: RaycastParams):RaycastResult?
StepPhysics(dt: number,parts: Instances):()
Membres hérités
Hérité par

Référence API
Méthodes
ArePartsTouchingOthers
Accès à la simulation
WorldRoot:ArePartsTouchingOthers(
partList:Instances, overlapIgnored:number
Paramètres
partList:Instances
overlapIgnored:number
Valeur par défaut : 0.000199999995
Retours
Échantillons de code
Vérification des pièces en contact
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)) -- Vrai
print(workspace:ArePartsTouchingOthers(partList, 0.999)) -- Vrai
print(workspace:ArePartsTouchingOthers(partList, 1)) -- Faux

Blockcast
Écrire en parallèle
Accès à la simulation
WorldRoot:Blockcast(
cframe:CFrame, size:Vector3, direction:Vector3, params:RaycastParams
Paramètres
cframe:CFrame
size:Vector3
direction:Vector3
Valeur par défaut : "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Échantillons de code
Bloc de projection
local Workspace = game:GetService("Workspace")
local function castBlock()
-- La position initiale et la rotation de la forme du bloc projeté
local originCFrame = CFrame.new(Vector3.new(0, 50, 0))
-- La taille de la forme du bloc projeté
local size = Vector3.new(6, 3, 9)
-- La direction dans laquelle le bloc est projeté
local direction = -Vector3.yAxis
-- La distance maximale de la projection
local distance = 50
-- Projette le bloc et crée une visualisation de celui-ci
local raycastResult = Workspace:Blockcast(originCFrame, size, direction * distance)
if raycastResult then
-- Imprime toutes les propriétés du RaycastResult si cela existe
print(`Le bloc a intersecté avec : {raycastResult.Instance:GetFullName()}`)
print(`Position d'intersection : {raycastResult.Position}`)
print(`Distance entre la position initiale du bloc et le résultat : {raycastResult.Distance}`)
print(`Le vecteur normal de la face intersectée : {raycastResult.Normal}`)
print(`Matériau touché : {raycastResult.Material.Name}`)
else
print("Rien n'a été touché")
end
end
-- Projette continuellement un bloc toutes les 2 secondes
while true do
castBlock()
task.wait(2)
end

BulkMoveTo
Accès à la simulation
WorldRoot:BulkMoveTo(
partList:Instances, cframeList:{any}, eventMode:Enum.BulkMoveMode
):()
Paramètres
partList:Instances
cframeList:{any}
Valeur par défaut : "FireAllEvents"
Retours
()

FindPartOnRay
Déprécié

findPartOnRay
Déprécié

FindPartOnRayWithIgnoreList
Déprécié

FindPartOnRayWithWhitelist
Déprécié

FindPartsInRegion3
Déprécié

findPartsInRegion3
Déprécié

FindPartsInRegion3WithIgnoreList
Déprécié

FindPartsInRegion3WithWhiteList
Déprécié

GetPartBoundsInBox
Écrire en parallèle
Accès à la simulation
WorldRoot:GetPartBoundsInBox(
cframe:CFrame, size:Vector3, overlapParams:OverlapParams
Paramètres
cframe:CFrame
size:Vector3
overlapParams:OverlapParams
Valeur par défaut : "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Retours

GetPartBoundsInRadius
Écrire en parallèle
Accès à la simulation
WorldRoot:GetPartBoundsInRadius(
position:Vector3, radius:number, overlapParams:OverlapParams
Paramètres
position:Vector3
radius:number
overlapParams:OverlapParams
Valeur par défaut : "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Retours

GetPartsInPart
Écrire en parallèle
Accès à la simulation
WorldRoot:GetPartsInPart(
part:BasePart, overlapParams:OverlapParams
Paramètres
overlapParams:OverlapParams
Valeur par défaut : "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Retours

IKMoveTo
Sécurité des plugins
Accès à la simulation
WorldRoot:IKMoveTo(
part:BasePart, target:CFrame, translateStiffness:number, rotateStiffness:number, collisionsMode:Enum.IKCollisionsMode
):()
Paramètres
target:CFrame
translateStiffness:number
Valeur par défaut : 0.5
rotateStiffness:number
Valeur par défaut : 0.5
collisionsMode:Enum.IKCollisionsMode
Valeur par défaut : "OtherMechanismsAnchored"
Retours
()

IsRegion3Empty
Déprécié

IsRegion3EmptyWithIgnoreList
Déprécié

Raycast
Écrire en parallèle
Accès à la simulation
WorldRoot:Raycast(
origin:Vector3, direction:Vector3, raycastParams:RaycastParams
Paramètres
origin:Vector3
direction:Vector3
raycastParams:RaycastParams
Valeur par défaut : "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Échantillons de code
Raycasting
local Workspace = game:GetService("Workspace")
local function castRay()
-- Le point d'origine du rayon
local originPosition = Vector3.new(0, 50, 0)
-- La direction dans laquelle le rayon est lancé
local direction = -Vector3.yAxis
-- La distance maximale du rayon
local distance = 50
-- Lance le rayon et crée une visualisation de celui-ci
local raycastResult = Workspace:Raycast(originPosition, direction * distance)
if raycastResult then
-- Imprime toutes les propriétés du RaycastResult si cela existe
print(`Le rayon a intersecté : {raycastResult.Instance:GetFullName()}`)
print(`Position de l'intersection : {raycastResult.Position}`)
print(`Distance entre l'origine du rayon et le résultat : {raycastResult.Distance}`)
print(`Le vecteur normal de la face intersectée : {raycastResult.Normal}`)
print(`Matériau touché : {raycastResult.Material.Name}`)
else
print("Rien n'a été touché")
end
end
-- Lance continuellement un rayon toutes les 2 secondes
while true do
castRay()
task.wait(2)
end

Shapecast
Accès à la simulation
WorldRoot:Shapecast(
part:BasePart, direction:Vector3, params:RaycastParams
Paramètres
direction:Vector3
Valeur par défaut : "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"

Spherecast
Écrire en parallèle
Accès à la simulation
WorldRoot:Spherecast(
position:Vector3, radius:number, direction:Vector3, params:RaycastParams
Paramètres
position:Vector3
radius:number
direction:Vector3
Valeur par défaut : "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}"
Échantillons de code
Projection sphérique
local Workspace = game:GetService("Workspace")
local function castSphere()
-- La position initiale de la forme sphérique projetée
local originPosition = Vector3.new(0, 50, 0)
-- Le rayon de la forme sphérique projetée en studs
local radius = 10
-- La direction dans laquelle la sphère est projetée
local direction = -Vector3.yAxis
-- La distance maximale de la projection
local distance = 50
-- Projette la sphère et crée une visualisation de celle-ci
local raycastResult = Workspace:Spherecast(originPosition, radius, direction * distance)
if raycastResult then
-- Affiche toutes les propriétés du RaycastResult si elles existent
print(`Sphère intersectée avec : {raycastResult.Instance:GetFullName()}`)
print(`Position d'intersection : {raycastResult.Position}`)
print(`Distance entre la position initiale de la sphère et le résultat : {raycastResult.Distance}`)
print(`Le vecteur normal de la face intersectée : {raycastResult.Normal}`)
print(`Matériau touché : {raycastResult.Material.Name}`)
else
print("Rien n'a été touché")
end
end
-- Projette continuellement une sphère toutes les 2 secondes
while true do
castSphere()
task.wait(2)
end

StepPhysics
Sécurité des plugins
WorldRoot:StepPhysics(
dt:number, parts:Instances
):()
Paramètres
parts:Instances
Valeur par défaut : "{}"
Retours
()
Échantillons de code
ÉtapePhysique
local RunService = game:GetService("RunService")
-- Tableau optionnel de pièces à simuler ; sinon, toutes les pièces seront simulées
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
-- Simule les pièces de l'espace de travail pendant 5 secondes, en faisant avancer les pièces une fois par image
simulateParts(5.0)

©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.