Classe motore
WorldRoot
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Sommario
Metodi
Membri ereditati
Membri ereditati da Model: 26
Membri ereditati da PVInstance: 4
Membri ereditati da Instance: 58
Membri ereditati da Object: 6
Ereditata da
Riferimento API
Metodi
ArePartsTouchingOthers
Parametri
partList:Instances |
| Valore predefinito: 0.000199999995 |
Restituzioni
Campioni di codice
Controllo dei Parti Tocchi
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)) -- Vero
print(workspace:ArePartsTouchingOthers(partList, 0.999)) -- Vero
print(workspace:ArePartsTouchingOthers(partList, 1)) -- FalsoBlockcast
WorldRoot:Blockcast(
Parametri
| Valore predefinito: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}" |
Restituzioni
Campioni di codice
Lancio di Blocchi
local Workspace = game:GetService("Workspace")
local function castBlock()
-- La posizione iniziale e la rotazione della forma del blocco lanciato
local originCFrame = CFrame.new(Vector3.new(0, 50, 0))
-- La dimensione della forma del blocco lanciato
local size = Vector3.new(6, 3, 9)
-- La direzione in cui il blocco viene lanciato
local direction = -Vector3.yAxis
-- La distanza massima del lancio
local distance = 50
-- Lancia il blocco e crea una visualizzazione di esso
local raycastResult = Workspace:Blockcast(originCFrame, size, direction * distance)
if raycastResult then
-- Stampa tutte le proprietà del RaycastResult se esiste
print(`Il blocco ha intersecato: {raycastResult.Instance:GetFullName()}`)
print(`Posizione di intersezione: {raycastResult.Position}`)
print(`Distanza tra la posizione iniziale del blocco e il risultato: {raycastResult.Distance}`)
print(`Il vettore normale della faccia intersecata: {raycastResult.Normal}`)
print(`Materiale colpito: {raycastResult.Material.Name}`)
else
print("Niente è stato colpito")
end
end
-- Lancia continuamente un blocco ogni 2 secondi
while true do
castBlock()
task.wait(2)
endBulkMoveTo
Parametri
partList:Instances |
| Valore predefinito: "FireAllEvents" |
Restituzioni
()
CollisionGroupsAreCollidable
CollisionGroupSetCollidable
FindPartOnRay
findPartOnRay
FindPartOnRayWithIgnoreList
FindPartOnRayWithWhitelist
FindPartsInRegion3
findPartsInRegion3
FindPartsInRegion3WithIgnoreList
FindPartsInRegion3WithWhiteList
GetPartBoundsInBox
Parametri
| Valore predefinito: "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}" |
Restituzioni
{BasePart}
GetPartBoundsInRadius
WorldRoot:GetPartBoundsInRadius(
Parametri
| Valore predefinito: "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}" |
Restituzioni
{BasePart}
GetPartsInPart
Parametri
| Valore predefinito: "OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}" |
Restituzioni
{BasePart}
IKMoveTo
WorldRoot:IKMoveTo(
part:BasePart, target:CFrame, translateStiffness:number, rotateStiffness:number, collisionsMode:Enum.IKCollisionsMode
):()
Parametri
| Valore predefinito: 0.5 |
| Valore predefinito: 0.5 |
| Valore predefinito: "OtherMechanismsAnchored" |
Restituzioni
()
IsCollisionGroupRegistered
IsRegion3Empty
IsRegion3EmptyWithIgnoreList
Raycast
Parametri
| Valore predefinito: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}" |
Restituzioni
Campioni di codice
Raggi di Proiezione
local Workspace = game:GetService("Workspace")
local function castRay()
-- Il punto di origine del raggio
local originPosition = Vector3.new(0, 50, 0)
-- La direzione in cui viene lanciato il raggio
local direction = -Vector3.yAxis
-- La distanza massima del raggio
local distance = 50
-- Lancia il raggio e crea una visualizzazione di esso
local raycastResult = Workspace:Raycast(originPosition, direction * distance)
if raycastResult then
-- Stampa tutte le proprietà del RaycastResult se esiste
print(`Il raggio ha intersecato: {raycastResult.Instance:GetFullName()}`)
print(`Posizione di intersezione: {raycastResult.Position}`)
print(`Distanza tra l'origine del raggio e il risultato: {raycastResult.Distance}`)
print(`Il vettore normale della faccia intersecata: {raycastResult.Normal}`)
print(`Materiale colpito: {raycastResult.Material.Name}`)
else
print("Niente è stato colpito")
end
end
-- Lancia continuamente un raggio ogni 2 secondi
while true do
castRay()
task.wait(2)
endRegisterCollisionGroup
RenameCollisionGroup
Shapecast
Parametri
| Valore predefinito: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}" |
Restituzioni
Spherecast
WorldRoot:Spherecast(
Parametri
| Valore predefinito: "RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}" |
Restituzioni
Campioni di codice
Lancio di Sfere
local Workspace = game:GetService("Workspace")
local function castSphere()
-- La posizione iniziale della forma sferica lanciata
local originPosition = Vector3.new(0, 50, 0)
-- Il raggio della forma sferica lanciata in studs
local radius = 10
-- La direzione in cui la sfera viene lanciata
local direction = -Vector3.yAxis
-- La distanza massima del lancio
local distance = 50
-- Lancia la sfera e crea una visualizzazione di essa
local raycastResult = Workspace:Spherecast(originPosition, radius, direction * distance)
if raycastResult then
-- Stampa tutte le proprietà del RaycastResult se esiste
print(`Sfera intersecata con: {raycastResult.Instance:GetFullName()}`)
print(`Posizione di intersezione: {raycastResult.Position}`)
print(`Distanza tra la posizione iniziale della sfera e il risultato: {raycastResult.Distance}`)
print(`Il vettore normale della faccia intersecata: {raycastResult.Normal}`)
print(`Materiale colpito: {raycastResult.Material.Name}`)
else
print("Niente è stato colpito")
end
end
-- Lancia continuamente una sfera ogni 2 secondi
while true do
castSphere()
task.wait(2)
endStepPhysics
Parametri
parts:Instances Valore predefinito: "{}" |
Restituzioni
()
Campioni di codice
PassiFisici
local RunService = game:GetService("RunService")
-- Array opzionale di parti da simulare; altrimenti tutte le parti saranno simulate
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 le parti dello spazio di lavoro per 5 secondi, facendo avanzare le parti una volta per frame
simulateParts(5.0)