เรียนรู้
Engine Class
Explosion

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


สรุป
เหตุการณ์
สมาชิกที่ได้รับทอด
ตัวอย่างโค้ด
การสร้างการระเบิด
local explosion = Instance.new("Explosion")
explosion.BlastRadius = 60
explosion.ExplosionType = Enum.ExplosionType.Craters -- ทำความเสียหายให้กับพื้น
explosion.Position = Vector3.new(0, 10, 0)
explosion.Parent = workspace

เอกสารอ้างอิงเกี่ยวกับ API
คุณสมบัติ
BlastPressure
อ่านพร้อมๆ กัน
ความสามารถ: AvatarBehavior
Explosion.BlastPressure:number
ตัวอย่างโค้ด
การระเบิดที่กำหนดเอง
local function customExplosion(position, radius, maxDamage)
local explosion = Instance.new("Explosion")
explosion.BlastPressure = 0 -- สิ่งนี้สามารถตั้งค่าให้สูงขึ้นเพื่อยังคงใช้แรงไปยังชิ้นส่วน
explosion.DestroyJointRadiusPercent = 0 -- ข้อต่อปลอดภัย
explosion.BlastRadius = radius
explosion.Position = position
-- ตั้งค่าตารางเพื่อติดตามโมเดลที่ถูกชน
local modelsHit = {}
-- ฟังการติดต่อ
explosion.Hit:Connect(function(part, distance)
local parentModel = part.Parent
if parentModel then
-- ตรวจสอบว่าโมเดลนี้ถูกชนไปแล้วหรือไม่
if modelsHit[parentModel] then
return
end
-- บันทึกโมเดลนี้ว่าได้รับผลกระทบ
modelsHit[parentModel] = true
-- มองหาผู้มีชีวิต
local humanoid = parentModel:FindFirstChild("Humanoid")
if humanoid then
local distanceFactor = distance / explosion.BlastRadius -- รับระยะห่างเป็นค่าระหว่าง 0 และ 1
distanceFactor = 1 - distanceFactor -- พลิกจำนวน ดังนั้นค่าต่ำกว่า == ใกล้กว่า == ความเสียหายมากขึ้น
humanoid:TakeDamage(maxDamage * distanceFactor) -- TakeDamage เพื่อเคารพ ForceFields
end
end
end)
explosion.Parent = game.Workspace
-- Roblox จะลบการระเบิดหลังจากไม่กี่วินาที แต่ไม่ทำลายมัน
-- เพื่อให้แน่ใจว่าการเชื่อมต่อ .Hit ของเราได้รับการตัดการเชื่อมต่อ ทำลายการระเบิดเมื่อมันถูกลบออก
explosion.AncestryChanged:Connect(function()
if not explosion.Parent then
explosion:Destroy()
end
end)
end
customExplosion(Vector3.new(0, 10, 0), 12, 50)

BlastRadius
อ่านพร้อมๆ กัน
ความสามารถ: AvatarBehavior
Explosion.BlastRadius:number
ตัวอย่างโค้ด
การสร้างการระเบิด
local explosion = Instance.new("Explosion")
explosion.BlastRadius = 60
explosion.ExplosionType = Enum.ExplosionType.Craters -- ทำความเสียหายให้กับพื้น
explosion.Position = Vector3.new(0, 10, 0)
explosion.Parent = workspace

DestroyJointRadiusPercent
อ่านพร้อมๆ กัน
ความสามารถ: AvatarBehavior
Explosion.DestroyJointRadiusPercent:number
ตัวอย่างโค้ด
การระเบิดที่ไม่เป็นอันตราย
local function onDescendantAdded(instance)
if instance:IsA("Explosion") then
local explosion = instance
explosion.DestroyJointRadiusPercent = 0
local destroyJointRadiusPercent = 1
explosion.Hit:Connect(function(part, distance)
-- ตรวจสอบว่าส่วนประกอบอยู่ในระยะเพื่อทำลายข้อต่อ
if distance <= destroyJointRadiusPercent * explosion.BlastRadius then
-- ตรวจสอบให้แน่ใจว่าส่วนประกอบไม่เป็นของตัวละคร
if not game.Players:GetPlayerFromCharacter(part.Parent) then
part:BreakJoints()
end
end
end)
end
end
workspace.DescendantAdded:Connect(onDescendantAdded)
การระเบิดที่กำหนดเอง
local function customExplosion(position, radius, maxDamage)
local explosion = Instance.new("Explosion")
explosion.BlastPressure = 0 -- สิ่งนี้สามารถตั้งค่าให้สูงขึ้นเพื่อยังคงใช้แรงไปยังชิ้นส่วน
explosion.DestroyJointRadiusPercent = 0 -- ข้อต่อปลอดภัย
explosion.BlastRadius = radius
explosion.Position = position
-- ตั้งค่าตารางเพื่อติดตามโมเดลที่ถูกชน
local modelsHit = {}
-- ฟังการติดต่อ
explosion.Hit:Connect(function(part, distance)
local parentModel = part.Parent
if parentModel then
-- ตรวจสอบว่าโมเดลนี้ถูกชนไปแล้วหรือไม่
if modelsHit[parentModel] then
return
end
-- บันทึกโมเดลนี้ว่าได้รับผลกระทบ
modelsHit[parentModel] = true
-- มองหาผู้มีชีวิต
local humanoid = parentModel:FindFirstChild("Humanoid")
if humanoid then
local distanceFactor = distance / explosion.BlastRadius -- รับระยะห่างเป็นค่าระหว่าง 0 และ 1
distanceFactor = 1 - distanceFactor -- พลิกจำนวน ดังนั้นค่าต่ำกว่า == ใกล้กว่า == ความเสียหายมากขึ้น
humanoid:TakeDamage(maxDamage * distanceFactor) -- TakeDamage เพื่อเคารพ ForceFields
end
end
end)
explosion.Parent = game.Workspace
-- Roblox จะลบการระเบิดหลังจากไม่กี่วินาที แต่ไม่ทำลายมัน
-- เพื่อให้แน่ใจว่าการเชื่อมต่อ .Hit ของเราได้รับการตัดการเชื่อมต่อ ทำลายการระเบิดเมื่อมันถูกลบออก
explosion.AncestryChanged:Connect(function()
if not explosion.Parent then
explosion:Destroy()
end
end)
end
customExplosion(Vector3.new(0, 10, 0), 12, 50)

ExplosionType
อ่านพร้อมๆ กัน
ความสามารถ: AvatarBehavior
Explosion.ExplosionType:Enum.ExplosionType
ตัวอย่างโค้ด
หยุดการระเบิดจากการทำลายพื้นผิว
local function onDescendantAdded(instance)
if instance:IsA("Explosion") then
instance.ExplosionType = Enum.ExplosionType.NoCraters
instance:GetPropertyChangedSignal("ExplosionType"):Connect(function()
instance.ExplosionType = Enum.ExplosionType.NoCraters
end)
end
end
workspace.DescendantAdded:Connect(onDescendantAdded)

LocalTransparencyModifier
ซ่อนอยู่
ไม่ซ้ำ
อ่านพร้อมๆ กัน
ความสามารถ: AvatarBehavior
Explosion.LocalTransparencyModifier:number

Position
อ่านพร้อมๆ กัน
ความสามารถ: AvatarBehavior
Explosion.Position:Vector3
ตัวอย่างโค้ด
การสร้างการระเบิด
local explosion = Instance.new("Explosion")
explosion.BlastRadius = 60
explosion.ExplosionType = Enum.ExplosionType.Craters -- ทำความเสียหายให้กับพื้น
explosion.Position = Vector3.new(0, 10, 0)
explosion.Parent = workspace

TimeScale
อ่านพร้อมๆ กัน
ความสามารถ: AvatarBehavior
Explosion.TimeScale:number

Visible
อ่านพร้อมๆ กัน
ความสามารถ: AvatarBehavior
Explosion.Visible:boolean
ตัวอย่างโค้ด
ภาพกราฟิกระเบิดที่กำหนดเอง
local function customExplosion(position)
local explosion = Instance.new("Explosion")
explosion.Position = position
explosion.Visible = false
local attachment = Instance.new("Attachment")
attachment.Position = position
attachment.Parent = workspace.Terrain
local particleEmitter = Instance.new("ParticleEmitter")
particleEmitter.Enabled = false
particleEmitter.Parent = attachment
particleEmitter.Speed = NumberRange.new(5, 30)
particleEmitter.SpreadAngle = Vector2.new(-90, 90)
explosion.Parent = workspace
particleEmitter:Emit(20)
task.delay(5, function()
if attachment then
attachment:Destroy()
end
end)
end
customExplosion(Vector3.new(0, 10, 0))

เหตุการณ์
Hit
ความสามารถ: AvatarBehavior
Explosion.Hit(
part:BasePart, distance:number
พารามิเตอร์
distance:number
ตัวอย่างโค้ด
การระเบิดที่กำหนดเอง
local function customExplosion(position, radius, maxDamage)
local explosion = Instance.new("Explosion")
explosion.BlastPressure = 0 -- สิ่งนี้สามารถตั้งค่าให้สูงขึ้นเพื่อยังคงใช้แรงไปยังชิ้นส่วน
explosion.DestroyJointRadiusPercent = 0 -- ข้อต่อปลอดภัย
explosion.BlastRadius = radius
explosion.Position = position
-- ตั้งค่าตารางเพื่อติดตามโมเดลที่ถูกชน
local modelsHit = {}
-- ฟังการติดต่อ
explosion.Hit:Connect(function(part, distance)
local parentModel = part.Parent
if parentModel then
-- ตรวจสอบว่าโมเดลนี้ถูกชนไปแล้วหรือไม่
if modelsHit[parentModel] then
return
end
-- บันทึกโมเดลนี้ว่าได้รับผลกระทบ
modelsHit[parentModel] = true
-- มองหาผู้มีชีวิต
local humanoid = parentModel:FindFirstChild("Humanoid")
if humanoid then
local distanceFactor = distance / explosion.BlastRadius -- รับระยะห่างเป็นค่าระหว่าง 0 และ 1
distanceFactor = 1 - distanceFactor -- พลิกจำนวน ดังนั้นค่าต่ำกว่า == ใกล้กว่า == ความเสียหายมากขึ้น
humanoid:TakeDamage(maxDamage * distanceFactor) -- TakeDamage เพื่อเคารพ ForceFields
end
end
end)
explosion.Parent = game.Workspace
-- Roblox จะลบการระเบิดหลังจากไม่กี่วินาที แต่ไม่ทำลายมัน
-- เพื่อให้แน่ใจว่าการเชื่อมต่อ .Hit ของเราได้รับการตัดการเชื่อมต่อ ทำลายการระเบิดเมื่อมันถูกลบออก
explosion.AncestryChanged:Connect(function()
if not explosion.Parent then
explosion:Destroy()
end
end)
end
customExplosion(Vector3.new(0, 10, 0), 12, 50)

©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ