函數實際上可以擁有多個參數,允許將多個引數(資訊片段)傳遞到函數中。一個例子可能是將玩家分配到一個隊伍。在這裡,你需要一個參數來傳遞玩家,和一個參數來傳遞要將他們分配到哪個隊伍。
要設置多個參數,請用逗號分隔參數名稱。
local function assignTeam(playerName, whichTeam)
end
練習多個參數
為了練習使用多個參數,創建一個將物體分為垃圾或回收的函數。
- 第一個參數將是垃圾,這將被摧毀。
- 第二個參數將是回收物,這將變得閃亮如新。
設置函數
首先設置具有多個參數的函數,然後測試你的工作。
- 在 ServerScriptService 中創建一個新腳本。
- 編碼一個名為 sortGarbage() 的新函數,包含兩個參數 trash 和 recyclable。
- 在腳本底部調用該函數。
- 使用函數內的打印語句快速檢查代碼。
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()
通過參數傳遞值
是時候把垃圾拿出去!設置好參數後,函數可以準備接收資訊。
使用基本的零件創建兩個物體來代表你可能會丟掉的東西。一個應該是垃圾,另一個應該是可回收的。確保它們有唯一的名稱。
在腳本的頂部,為你創建的物件添加變數。這些將是你的引數。
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)測試你的代碼。第一次傳入的對象將被摧毀。第二個對象將閃閃發光。
參數的順序
通常,引數根據傳入的順序與參數匹配。例如,第一個引數用於第一個參數,第二個引數用於第二個參數。
在我們的例子中,有兩個參數。無論什麼首先傳入,將始終是垃圾,而第二個將始終是可回收物。
--摧毀垃圾並清理可回收物
local function sortGarbage(trash,recyclable)
local sparkle = Instance.new("ParticleEmitter")
trash:Destroy()
sparkle.Parent = recyclable
end
-- 按順序進行。水泥被摧毀,玻璃瓶被回收
sortGarbage(cementBlock, glassBottle)
-- 玻璃瓶被摧毀,水泥區塊被回收
sortGarbage(glassBottle, cementBlock)
如果你只傳入一個引數,那麼該引數將被視為垃圾。如果你傳入三個引數,第三個引數將不會被處理,因為沒有第三個參數。
總結
參數是通過它們可以將值傳遞到函數中的佔位符。引數是通過佔位符傳遞的值。你可以通過用逗號分隔名稱來創建多個參數。在調用函數時,傳入接收函數的值的順序決定了使用哪個參數。