Debris

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Oluşturulamaz
Hizmet

Parçalar hizmeti, teslim etmeden bir nesnenin garanti yok edilmesine izin verir.

Avantajlar

Biraz karışık bir objeyi oluşturmak dışında, artık gerekli olmayan nesneler sistem hafızasını kullanabilir ve bir deneyimin daha yavaş çalışmasına neden olabilir. Bu nedenle, artık gerekli olmayan bir nesneyi Instance:Destroy() çağırmak her zaman tavsiye edilir. Bazı durumlarda, bir nesnenin özell

Bir duvarın bireysel malzemelerine çekilmesini düşünün. Eğer 3 saniye içinde yok edilmeyi istiyorsanız, aşağıdaki kodu kullanabilirsiniz:


task.wait(3)
brick:Destroy()

Ancak, beklemek, istemediğiniz bir şeyi sağlayabilir. Yielding'i önlemek için, bir çağrı işlevi 3 saniye sonra yeni bir çağrıda gösterilir:


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

Ya da bir satırda:


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

Bu şimdi çıkarma önlenmesi, potansiyel bir dezavantajı vardır, çünkü çağrılama başarısız veya yoksa çağrılama başarısız olur.

Burada Debris 'in özellikli bir avantajı vardır, çünkü mevcut thread'i oluşturmaz veya kullanıcının konumunun dışına çalışır, böylece instans sonuçta yok edilir garanti edilir. Aşağıdaki kod üretmez ve garanti etmez instans:


Debris:AddItem(brick, 3)

Not et Debris 'in 1,000'den fazla öğeye kadar kodlanmış bir maksimumu vardır, bu yüzden 1,000'den fazla öğe eklenirse, en eski atıklar anında yok edilir ve yeni atıklar için yer açılır.

Kod Örnekleri

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

Özellikler

Yöntemler

AddItem

void

Belirli bir Instance için belirli bir süre için yok edilir. lifetime argümanının süresi dolduktan sonra, nesneler Instance:Destroy() ile aynı şekilde yok edilir. Not edin ki 2> Lifetime2> argümanının süresi isteğe bağlıdır ve var

Not that Debris has a hardcoded maximum of 1,000 objects, so if more than 1,000 items are added, the oldest debris will be destroyed instantly to make room for new debris. This means you should treat the lifetime parameter as a maximum lifetime, not an exact lifetime.

Parametreler

item: Instance

Class.Instance 'i Debris 'e eklemek için.

lifetime: number

Class.Instance silinecek saniye sayısı.

Varsayılan değer: 10

Dönüşler

void

Kod Örnekleri

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

Etkinlikler