Debris

Mostrar obsoleto

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

No creable
Servicio

El servicio Debris permite programar la destrucción garantizada de un objeto sin rendir.

Beneficios

Además de crear un poco de un desastre, los objetos que ya no se requieren pueden usar memoria del sistema y causar que una experiencia se ejecute más lentamente con el tiempo. Por esta razón, siempre se recomienda llamar a Instance:Destroy() en los objetos que ya no necesita. En algunos casos, sin embargo, un objeto puede tener un período de utilidad específico antes de que se pueda destruir.

Considera que una pared se rompe en bloques individuales. Si quieres que una ladrillo se mantenga durante 3 segundos antes de ser destruida, puedes usar el siguiente código:


task.wait(3)
brick:Destroy()

Sin embargo, la espera hace que el hilo genere lo que puede ser no deseado. Para evitar la generación, se puede programar una función de llamada para que se ejecute en un nuevo hilo después de 3 segundos:


task.delay(3, function()
brick:Destroy()
end)

O en una línea:


task.delay(3, brick.Destroy, brick)

Aunque esto ahora evita rendirse, tiene un potencial desventaja en que el código programado nunca se ejecutará si el script está deshabilitado o destruido antes de que se ejecute el código.

Aquí es donde Debris tiene una ventaja específica, ya que no produce el hilo actual y se ejecuta fuera del contexto del script, garantizando que la instancia se destruya finalmente, incluso si el script está deshabilitado o destruido. El código siguiente no produce y garantiza que la instancia se destruya:


Debris:AddItem(brick, 3)

Tenga en cuenta que Debris tiene un máximo de objetos codificado de 1,000, por lo que si se agregan más de 1,000 artículos, el material más antiguo se destruirá instantáneamente para hacer espacio para nuevo debris.

Muestras de código

Debris AddItem

local Debris = game:GetService("Debris")
local ball = Instance.new("Part")
ball.Anchored = false
ball.Shape = Enum.PartType.Ball
ball.TopSurface = Enum.SurfaceType.Smooth
ball.BottomSurface = Enum.SurfaceType.Smooth
ball.Size = Vector3.new(1, 1, 1)
local RNG = Random.new()
local MAX_VELOCITY = 10
while true do
local newBall = ball:Clone()
newBall.BrickColor = BrickColor.random()
newBall.CFrame = CFrame.new(0, 30, 0)
newBall.Velocity = Vector3.new(
RNG:NextNumber(-MAX_VELOCITY, MAX_VELOCITY),
0,
RNG:NextNumber(-MAX_VELOCITY, MAX_VELOCITY)
)
newBall.Parent = game.Workspace
Debris:AddItem(newBall, 2)
task.wait(0.1)
end

Propiedades

Métodos

AddItem

void

Programa un Instance para la destrucción dentro de la vida especificada. Después de que el argumento lifetime haya expirado, el objeto se destruye de la misma manera que Instance:Destroy() . Nota que el argumento 1> Lifetime1> es opcional y se predetermina para 10 segundos.

Tenga en cuenta que Debris tiene un máximo de objetos codificado de 1,000, por lo que si se agrega más de 1,000 artículos, el material más antiguo se destruirá instantáneamente para hacer espacio para nuevo debris. Esto significa que debe tratar el parámetro de lifetime como un máximo de tiempo de vida , no un tiempo de vida exacto.

Parámetros

item: Instance

El Instance para agregar a Debris .

lifetime: number

Número de segundos antes de que el Instance debe ser destruido.

Valor predeterminado: 10

Devuelve

void

Muestras de código

Debris AddItem

local Debris = game:GetService("Debris")
local ball = Instance.new("Part")
ball.Anchored = false
ball.Shape = Enum.PartType.Ball
ball.TopSurface = Enum.SurfaceType.Smooth
ball.BottomSurface = Enum.SurfaceType.Smooth
ball.Size = Vector3.new(1, 1, 1)
local RNG = Random.new()
local MAX_VELOCITY = 10
while true do
local newBall = ball:Clone()
newBall.BrickColor = BrickColor.random()
newBall.CFrame = CFrame.new(0, 30, 0)
newBall.Velocity = Vector3.new(
RNG:NextNumber(-MAX_VELOCITY, MAX_VELOCITY),
0,
RNG:NextNumber(-MAX_VELOCITY, MAX_VELOCITY)
)
newBall.Parent = game.Workspace
Debris:AddItem(newBall, 2)
task.wait(0.1)
end

Eventos