使用參數和事件

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

通常情況下,函數只能使用已經寫在裡面的資訊。 但是,有時候你可能不知道預先你能否使用某個資訊,或者你想要能夠重用相同的功能與多個相似的資訊。 例如,如果您想要顯示人們賽車的最快人的名字,你不會知道賽車結束時的名字,直到賽車結束。 參數 是您想要在以後時間提供給函數的資訊。它們是像窗戶,讓您可以傳送資訊給函數。

使用參數和事件設置陷阱

這個腳本會創建一個毀滅所有觸摸零件的部分,包括其他零件。您必須使用參數設置它。小心錨定陷阱,以防意外摧毀。

創建新零件

零件需要設置,這會毀滅任何碰觸它的人。

  1. 創建一個不會觸觸任何東西的新零件。如果它觸觸任何東西,可能會太快地關閉。
  2. 在 Explorer 中,重新命名零件:TrapPart。
  3. 錨定 零件。

設置指令碼

使用您對變數和體驗階層的知識來參考陷阱部分。

  1. 將新指令碼添加到陷阱區。將指令碼命名為 TrapScript

  2. 刪除 Hello World 並添加說明性評留言。

  3. 在留言論下,創建一個新變數,找到指定腳指令碼的父元素。


    -- 摧毀父元素親的任何東西
    local trap = script.Parent

使用參數建立功能

陷阱會使用一個函數來摧毀零件的任何部分。要使用它,函數必須知道哪個部分被摧毀。這意味著使用參數。參數是由 () 來表示,它是在功能名後的內部。它看起來像這樣:


local function functionName(parameterName)
end

參數中傳送的實際資訊稱為 參數值 。 您將創建一個名為 onTouch() 的新函數,並且使用 objectTouched 參數來跟蹤陷阱,然後摧毀它。

  1. 建立本地函數。它可以名為任何東西,但這個課程會使用 onTouch


    local trap = script.Parent
    local function onTouch()
    end
  2. () 內,輸入參數的名稱。這個課程會使用 objectTouched。


    local trap = script.Parent
    local function onTouch(objectTouched)
    end
  3. local function onTouch()end 之間,創建打印說明。你會用這個來檢查下一個區段中是否有東西觸摸零件。


    local trap = script.Parent
    local function onTouch(objectTouched)
    print("Something touched the trap")
    end

使用事件來呼叫函數

我們想要讓函數在某個部件被觸摸時執行。若要讓這個發生,請將函數連接到 Touched 事件。 事件 是發生在體驗中的事件。當玩家觸摸某個部件或減少生命值時。當函數與事件連接時,函數將會執行。

Touched 事件發生時,每個零件將碰觸另一個零件,可以用來創建按鈕、陷阱和其他對話框,玩家可以與它們互動。

  1. 在功能的 end 下,輸入 trap.Touched:Connect(onTouch)


    local trap = script.Parent
    local function onTouch(objectTouched)
    print("Something touched the trap")
    end
    -- 連接功能到觸摸事件
    trap.Touched:Connect(onTouch)
  2. 按一下測試,然後觸摸零件。檢查你的測試列印說明:Something touched the trap。如果你無法在輸出窗口中查看字串,請查看以追蹤中內容:

    • 請確保 "Something touched the part!" 在 local function onTouch() 和 en結束 之間。
    • 檢查 Touched 是否已滿文。
  3. 現在函數正確設置後,使用它來摧毀零件的任何部分。在功能內,在 string 之後,字串入 objectTouched:Destroy() 完成的代碼應該是:


    local trap = script.Parent
    local function onTouch(objectTouched)
    print("Something touched the trap")
    -- 摧毀感應物物件
    objectTouched:Destroy()
    end
    trap.Touched:Connect(onTouch)
  4. 再次測試,看看當零件被碰時會發生什麼事。 您的虛擬人應該會喪失腳踝或手臂。 如果零件觸摸到虛虛擬人偶的頭或頸部,它可能會被完全摧毀。

摘要

參數可以將資料傳送到可能會在範圍外的資料(例如函數無法看到的情況),並將其傳入到函數中。與此同時,事件是特殊信號,當發生重要事件時會在體驗中發出。不同的對象有不同的事件。當功能連接到事件時,會傳送功能到�����