通常情況下,函數只能使用已經寫在裡面的資訊。 但是,有時候你可能不知道預先你能否使用某個資訊,或者你想要能夠重用相同的功能與多個相似的資訊。 例如,如果您想要顯示人們賽車的最快人的名字,你不會知道賽車結束時的名字,直到賽車結束。 參數 是您想要在以後時間提供給函數的資訊。它們是像窗戶,讓您可以傳送資訊給函數。
使用參數和事件設置陷阱
這個腳本會創建一個毀滅所有觸摸零件的部分,包括其他零件。您必須使用參數設置它。小心錨定陷阱,以防意外摧毀。
創建新零件
零件需要設置,這會毀滅任何碰觸它的人。
- 創建一個不會觸觸任何東西的新零件。如果它觸觸任何東西,可能會太快地關閉。
- 在 Explorer 中,重新命名零件:TrapPart。
- 錨定 零件。
設置指令碼
使用您對變數和體驗階層的知識來參考陷阱部分。
將新指令碼添加到陷阱區。將指令碼命名為 TrapScript。
刪除 Hello World 並添加說明性評留言。
在留言論下,創建一個新變數,找到指定腳指令碼的父元素。
-- 摧毀父元素親的任何東西local trap = script.Parent
使用參數建立功能
陷阱會使用一個函數來摧毀零件的任何部分。要使用它,函數必須知道哪個部分被摧毀。這意味著使用參數。參數是由 () 來表示,它是在功能名後的內部。它看起來像這樣:
local function functionName(parameterName)
end
參數中傳送的實際資訊稱為 參數值 。 您將創建一個名為 onTouch() 的新函數,並且使用 objectTouched 參數來跟蹤陷阱,然後摧毀它。
建立本地函數。它可以名為任何東西,但這個課程會使用 onTouch
local trap = script.Parentlocal function onTouch()end在 () 內,輸入參數的名稱。這個課程會使用 objectTouched。
local trap = script.Parentlocal function onTouch(objectTouched)end在 local function onTouch() 和 end 之間,創建打印說明。你會用這個來檢查下一個區段中是否有東西觸摸零件。
local trap = script.Parentlocal function onTouch(objectTouched)print("Something touched the trap")end
使用事件來呼叫函數
我們想要讓函數在某個部件被觸摸時執行。若要讓這個發生,請將函數連接到 Touched 事件。 事件 是發生在體驗中的事件。當玩家觸摸某個部件或減少生命值時。當函數與事件連接時,函數將會執行。
當 Touched 事件發生時,每個零件將碰觸另一個零件,可以用來創建按鈕、陷阱和其他對話框,玩家可以與它們互動。
在功能的 end 下,輸入 trap.Touched:Connect(onTouch)
local trap = script.Parentlocal function onTouch(objectTouched)print("Something touched the trap")end-- 連接功能到觸摸事件trap.Touched:Connect(onTouch)按一下測試,然後觸摸零件。檢查你的測試列印說明:Something touched the trap。如果你無法在輸出窗口中查看字串,請查看以追蹤中內容:
- 請確保 "Something touched the part!" 在 local function onTouch() 和 en結束 之間。
- 檢查 Touched 是否已滿文。
現在函數正確設置後,使用它來摧毀零件的任何部分。在功能內,在 string 之後,字串入 objectTouched:Destroy() 完成的代碼應該是:
local trap = script.Parentlocal function onTouch(objectTouched)print("Something touched the trap")-- 摧毀感應物物件objectTouched:Destroy()endtrap.Touched:Connect(onTouch)再次測試,看看當零件被碰時會發生什麼事。 您的虛擬人應該會喪失腳踝或手臂。 如果零件觸摸到虛虛擬人偶的頭或頸部,它可能會被完全摧毀。
摘要
參數可以將資料傳送到可能會在範圍外的資料(例如函數無法看到的情況),並將其傳入到函數中。與此同時,事件是特殊信號,當發生重要事件時會在體驗中發出。不同的對象有不同的事件。當功能連接到事件時,會傳送功能到�����