関数には実際に複数のパラメーターを持つことができ、関数に渡すことができる複数の引数(情報の部分)を許可します。例として、プレイヤーをチームに割り当てる場合が考えられます。ここでは、プレイヤーを渡すためのパラメーターと、どのチームに割り当てるかを渡すためのパラメーターが必要です。
複数のパラメーターを設定するには、パラメーター名をカンマで区切ります。
local function assignTeam(playerName, whichTeam)
end
複数のパラメーターでの練習
複数のパラメーターを使用して作業する練習として、オブジェクトをゴミまたはリサイクルに振り分ける関数を作成します。
- 最初の パラメーターはゴミで、破棄されます。
- 二番目の パラメーターはリサイクル用で、新しく輝かせられます。
関数の設定
最初に複数のパラメーターを持つ関数を設定し、その後作業をテストします。
- ServerScriptService に新しいスクリプトを作成します。
- trash と recyclable の2つのパラメーターを持つ新しい関数 sortGarbage() をコーディングします。
- スクリプトの一番下で、その関数を呼び出します。
- 関数内にプリント文を入れて、これまでのコードをすばやく確認します。
local function sortGarbage(trash, recyclable)
print("garbage test")
end
sortGarbage()
複数のパラメーターを使用する
関数内では、パラメーターを変数のように使用できます。この例では、trash が破棄され、recyclable にパーティクルエミッターを使用してスパークルを与えます。
プリント文を削除し、以下のように Instance.new() を使用して新しいパーティクルエミッターを作成します。これはリサイクル対象にスパークルを与えるために使用されます。
local function sortGarbage(trash, recyclable)-- 新しいパーティクルエミッターを作成local sparkle = Instance.new("ParticleEmitter")endsortGarbage()ゴミパラメーターを通じて渡されたものを、他の変数と同様に破棄します。
local function sortGarbage(trash, recyclable)local sparkle = Instance.new("ParticleEmitter")-- ゴミを破棄trash:Destroy()endsortGarbage()パーティクルエミッターをリサイクル可能なものに親付けします。
local function sortGarbage(trash, recyclable)local sparkle = Instance.new("ParticleEmitter")-- ゴミを破棄し、リサイクル可能なものを輝かせるtrash:Destroy()sparkle.Parent = recyclableendsortGarbage()
パラメーターを通じて値を渡す
ゴミを出す時間です!パラメーターが設定されたことで、関数は情報を受け取る準備が整いました。
投げ捨てる可能性のあるものを表す基本パーツを使い、2つのオブジェクトを作成します。1つはゴミ、もう1つはリサイクル可能にします。ユニークな名前を付けてください。
スクリプトの一番上に、作成したオブジェクトのための変数を追加します。これがあなたの引数になります。
local Workspace = game:GetService("Workspace")local cementBlock = Workspace.Cementlocal glassBottle = Workspace.GlassBottleスクリプトの一番下で、sortGarbage() が呼び出される場所で、各引数を渡します。
local Workspace = game:GetService("Workspace")-- 引数として使用するオブジェクトlocal cementBlock = Workspace.CementBlocklocal glassBottle = Workspace.GlassBottle-- ゴミを破棄し、リサイクル可能なものを整理するlocal function sortGarbage(trash, recyclable)local sparkle = Instance.new("ParticleEmitter")trash:Destroy()sparkle.Parent = recyclableend-- 引数を渡すsortGarbage(cementBlock, glassBottle)コードをテストします。最初に渡されたオブジェクトが破棄されます。2番目のオブジェクトがスパークルします。
パラメーターの順序
通常、引数は渡される順序に基づいてパラメーターに一致します。例えば、最初の引数は最初のパラメーターに使用されます。2番目の引数は2番目のパラメーターに使用されます。
私たちの例では、2つのパラメーターがあります。最初に渡されるものは常にゴミになり、2番目は常にリサイクル可能になります。
-- ゴミを破棄し、リサイクル可能なものを整理する
local function sortGarbage(trash, recyclable)
local sparkle = Instance.new("ParticleEmitter")
trash:Destroy()
sparkle.Parent = recyclable
end
-- 順番に処理します。セメントが破棄され、ガラス瓶がリサイクルされます
sortGarbage(cementBlock, glassBottle)
-- ガラス瓶が破棄され、セメントブロックがリサイクルされます
sortGarbage(glassBottle, cementBlock)
もし引数を1つだけ渡した場合、その引数はゴミとして扱われます。3つの引数を渡した場合、3番目の引数には何も起こりません。なぜなら3番目のパラメーターが存在しないからです。
まとめ
パラメーターは、値が関数に渡されるためのプレースホルダーです。引数は、そのプレースホルダーを通じて渡される値です。パラメーターをカンマで区切ることで複数のパラメーターを作成できます。関数を呼び出す時、値が受信関数に渡される順序が、どのパラメーターが使われるかを決定します。