잔해 서비스는 객체를 포기하지 않고 보장된 파괴를 예약할 수 있습니다.
장점
메시를 만드는 것 외에도 필요하지 않은 개체는 시스템 메모리를 사용하고 경험을 더 느리게 실행하게 할 수 있습니다. 이 때문에 필요하지 않은 개체에는 항상 Instance:Destroy()를 호출하는 것이 좋습니다. 일부 경우, 하지만, 개체에 특정 기간의 유틸리
벽을 개별 벽돌로 부숴 칠 수 있습니다. 벽을 3초 동안 떠나지 않고 살려고 하는 경우 다음 코드를 사용할 수 있습니다.
task.wait(3)brick:Destroy()
그러나 대기 상태에서는 스레드가 생성되어 원하지 않는 경우가 있습니다. 대기 상태를 피하려면 3초 후에 새로운 스레드에서 콜백 함수를 예약할 수 있습니다.
task.delay(3, function()
brick:Destroy()
end)
또는 한 줄에:
task.delay(3, brick.Destroy, brick)
이제는 렌더링을 피하지만 스크립트가 렌더링되기 전에 해제되거나 삭제되면 예약된 콜백이 실행되지 않습니다.
여기에서 Debris 는 현재 스레드를 생성하지 않으며 스크립트의 컨텍스트 밖에서 실행되므로 인스턴스가 결국 파괴되더라도 인스턴스가 파괴되는 것을 보장합니다. 다음 코드는 인스턴스가 파괴되더라도 생성하지 않고 보장하지 않습니다.
Debris:AddItem(brick, 3)
Class.Debris는 하드코딩된 최대 개체 1,000개가 있으므로 1,000개 이상의 개체가 추가되면 가장 오래된 부품이 즉시 삭제되어 새 부품을 만들 수 있습니다.
코드 샘플
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
요약
메서드
지정된 Instance 을 지정한 수명 내에 파괴합니다.
속성
메서드
AddItem
지정된 Instance 을 지정된 lifetime 의 내에서 파괴합니다. Instance:Destroy() 인수가 만료된 후 개체는 동일한 방식으로 파괴됩니다. 참고 2>Class.Instance:Destroy2> 인수가 만료되면 기본적으로 10초 동안 개체가 파�
Class.Debris는 하드코딩된 최대 1,000개의 개체를 가지고 있으므로 1,000개 이상의 개체가 추가되면 가장 오래된 부품이 즉시 삭제되고 새 부품이 추가되면 이전 부품이 즉시 삭제됩니다. 즉, 이 lifetime 매개
매개 변수
Class.Instance 이 파괴될 때까지 남은 시간.
반환
코드 샘플
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