関数には複数のパラメータを持たせることができます。例として、プレイヤーをチームに割り当てるという関数を作った場合はどうでしょう。どのプレイヤーをどのチームにするのかを指示しなくてはなりませんので、少なくとも2つのパラメータが必要になります。
複数のパラメータを設定するには、パラメータ名をカンマで区切ります。
local function assignTeam(playerName, whichTeam)
end
複数のパラメータを使う練習
複数のパラメータを使う練習をしてみましょう。ゴミは破棄し、リサイクル品にはピカピカ効果を加えるという関数を作成してみます。
- 最初のパラメータに指定するのはゴミです。こちらは破棄されます。
- 2 番目のパラメータに指定するのはリサイクル品です。こちらにはピカピカ効果が追加されます。
関数を作る
最初に複数のパラメータを使用した関数を作り、テストしてみましょう。
- ServerScriptServiceに新しいスクリプトを作成します。
- 2つのパラメータ、trashとrecyclableを指定して、 sortGarbage()という名前の関数を作ります。
- プログラムの最後で、この関数を呼び出します。
- 関数内で print文を使用して、ここまでのプログラムを確認します。
local function sortGarbage(trash, recyclable)
print("garbage test")
end
sortGarbage()
複数のパラメータの使用
関数内では、パラメータを変数と同じように扱えます。この例では、ゴミを破棄してから、パーティクルエミッター(効果を与えるオブジェクトの1つ)を使用して、リサイクル品にピカピカ効果を与えます。
- print 文を消し、Instance.new() を使用して、図のように新しいパーティクル エミッタを作成します。これは、リサイクル可能なものに輝きを与えるために使用されます。
local function sortGarbage(trash,recyclable)
-- パーティクルエミッターの新規作成
local sparkle = Instance.new("ParticleEmitter")
end
sortGarbage()
Instance.new()を使用すると、Part、Fire、Folderなどのオブジェクトを作成できます。
- パラメーターtrashに指定されたオブジェクトを破棄します。
local function sortGarbage(trash,recyclable)
local sparkle = Instance.new("ParticleEmitter")
-- trashを破棄
trash:Destroy()
end
sortGarbage()
- ParticleEmitter を recyclable の親に設定します。
Parentを設定することにより、画面に表示されます。
local function sortGarbage(trash,recyclable)
local sparkle = Instance.new("ParticleEmitter")
-- ゴミを破棄し、リサイクル品にピカピカ効果を与える
trash:Destroy()
sparkle.Parent = recyclable
end
sortGarbage()
パラメータを介して値を渡す
- ゴミ出しの時間です。パラメータを設定すると、関数は情報を取り込む準備が整います。
- パーツを2つ追加します。1つはゴミにするもの、もう1つはリサイクルするものです。
- ゴミにするパーツの名前は「Cement」(セメント)とし、リサイクルするパーツを「GlassBottle」(ガラス瓶)にします。色や材質を変えておいた方が良いでしょう。
- 先頭行で、それらにアクセスしやすくする変数を追加します。
local cementBlock = game.Workspace.Cement
local glassBottle = game.Workspace.GlassBottle
- sortGarbage()が呼び出されるスクリプトの下部で、各引数を渡します。関数を呼び出すときに渡す値を引数(ひきすう)と言います。値には数値、文字、オブジェクトなどが指定できますが、今回はオブジェクトを引数として渡しています。
-- 引数として使用するオブジェクト
local cementBlock = game.Workspace.CementBlock
local glassBottle = game.Workspace.GlassBottle
-- ゴミの破棄とリサイクル品の処理
local function sortGarbage(trash,recyclable)
local sparkle = Instance.new("ParticleEmitter")
trash:Destroy()
sparkle.Parent = recyclable
end
-- 2つのオブジェクトを引数で渡す
sortGarbage(cementBlock, glassBottle)
- テスト実行します。最初に渡されたオブジェクトは破棄され、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 番目の引数は無視されます。
[ 2-3 パラメータの練習ーボタン ]