Debris

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

作成できません
サービス

デブリ サービスは、生成 を捨てずにオブジェクトの破壊を保証します。

利点

オブジェクトが再び必要ない場合、オブジェクトを使用しなくなると、システムメモリを使用し、エクスペリエンスを遅く実行することがあります。このため、必要ないオブジェクトには常に Instance:Destroy() を呼び出します。一部の場合、しかし、オブジェクトが特定の期間のユーティリティを持つ場合があ

壁を個々のレンガに割ることを考慮してください。如果 3 秒間レンガが保持されることが必要な場合は、次のコードを使用できます:


task.wait(3)
brick:Destroy()

しかし、待機するとスレッドが生成され、不要な場合があります。生成を避けるには、コールバック関数を 3 秒後の新しいスレッドでスケジュールできます:


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

または 1 行で:


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

これは、現在、実行を避けることができますが、スクリプトがコールバックを実行する前に無効にされたり、削除されたりする可能性があります。

ここで Debris は、現在のスレッドを生成しないため、特定の利点があります。スクリプトのコンテキストを超えて実行されるため、インスタンスが最終的に破壊されることを保証します。次のコードは生成して保証しません:


Debris:AddItem(brick, 3)

Class.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 内で破壊します。 Class.Instance:Destroy() の引数の有効期限が切れると、オブジェクトは同じ方法で破壊されます。 2>Class.Instance:Destroy() の引数はオプションであり、デフォルトでは 10 秒です。

Class.Debris には、ハードコードされた最大 1,000個のオブジェクトがあるため、1,000個以上のアイテムが追加されると、最古の破片は即座に破壊され、新しい破片が入れ替わります。これは、lifetime パラメータを正確な Lifetime ではなく、「最大 L

パラメータ

item: Instance

Class.Instance を Debris に追加する。

lifetime: number

Class.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

イベント