Debris

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ไม่สามารถสร้าง
บริการ

บริการ เศษเหล็ก ช่วยให้กำหนดการทำลายที่รับประกันโดยไม่ต้องยืนยัน

ข้อดี

นอกจากการสร้างความสับสนเล็กน้อย วัตถุที่ไม่มีความจำเป็นอีกต่อไปสามารถใช้หน่วยความจำระบบและทำให้ประสบการณ์ทำงานช้าลงในระยะเวลานาน ด้วยเหตุผลนี้จึงเสม

พิจารณาผนังถูกแบ่งออกเป็นอิฐแต่ละอัน หากคุณต้องการอิฐที่ยืนอยู่เป็นเวลา 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)

หมายเหตุว่า Debris มีสูงสุด 1,000 วัตถุดิบ ดังนั้นหากมีวัตถุดิบมากกว่า 1,000 รายการจะถูกทำลายโดยอินสแตนต์เพื่อประหยัดที่ว่างให้สำหรับวัตถุดิบใหม่

ตัวอย่างโค้ด

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

คุณสมบัติ

วิธีการ

AddItem

void

กำหนดการตั้งค่า Instance ให้สำหรับการทำลายภายในช่วงเวลาที่กำหนด หลังจากที่อาร์เจนต์ lifetime จะหมดอายุ วัตถุจะถูกทำลายในวิธีเดียวกับ

หมายเหตุว่า Debris มีสูงสุด 1,000 วัตถุดิบจึงหากมีวัตถุเพิ่มเติมมากกว่า 1,000 วัตถุจะถูกทำลายโดยอินสแตนซ์เพื่อสร้างพื้นที่ใหม่สำห

พารามิเตอร์

item: Instance

Class.Instance เพื่อเพิ่มใน Debris

lifetime: number

จำนวนวินาทีก่อนที่ Instance จะถูกทำลาย

ค่าเริ่มต้น: 10

ส่งค่ากลับ

void

ตัวอย่างโค้ด

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

อีเวนต์