父母和孩子

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

在不從 ServerScriptService 執行腳本的情況下,您可能希望將腳本附加到零件上。例如,使用腳本將一個零件變成一個陷阱,或者使一個零件在玩家觸摸時給予分數。通過理解腳本和零件在層次結構中的關係,您可以創建一個自動工作的腳本,而不需要指定使用哪個零件。

要做到這一點,您必須了解 父母和孩子關係

父母和孩子是用來描述不同物件之間層次結構的方式。每次您將新的零件添加到 Workspace 時,Workspace 都是父物件,而該零件成為了子物件。當您將腳本添加到 ServerScriptService 時,ServerScriptService 是父物件,腳本則是新的子物件。

設定項目和腳本

為了演示父母和孩子的關係,您將從一個改變顏色的單一零件開始,然後將腳本複製到多個零件中。

  1. 創建一個新的零件並重新命名。這節課將使用 ColorPart。

  2. 右鍵點擊 零件,然後選擇 插入物件新建腳本。將腳本重新命名為 ColorChanger

  3. 將以下代碼複製並粘貼到 ColorChanger 中。這段代碼的版本與您之前使用的相同。它將一個特定的零件分配給一個變數。

    變更 ColorPart 的顏色

    local Workspace = game:GetService("Workspace")
    local colorPart = Workspace.ColorPart
    colorPart.Color = Color3.fromRGB(50, 240, 255)
  4. 測試並檢查零件是否按預期改變顏色。

父母和孩子的關係

父母 是任何具有附加物件(如腳本或零件)的物件。父母之下的任何物件都是它的 孩子。在下面的示例中,ColorPart 是父物件,而 ColorChanger 是子物件。

使用當前的腳本,您只能改變名為 ColorPart 的 單一零件 的顏色。要改變任何零件的顏色,您可以設計代碼,使其適用於腳本的父物件,無論它的名稱為何。代碼 script.Parent 將向上查找層次結構,找到腳本附加的物件。

使用 script.Parent

script.Parent 可以像其他值一樣,使用 = 符號分配給一個變數。

  1. 在腳本中,用 script.Parent 替換命名的零件。查看您的代碼如下。

    變更父物件的顏色

    local colorPart = script.Parent
    colorPart.Color = Color3.fromRGB(50, 240, 255)

測試可重用的零件

現在變數將指向腳本附加的任何零件,您可以隨意製作多個副本。

  1. 右鍵點擊顏色零件並選擇複製,或者使用熱鍵 CtrlD (D)。至少創建三個零件。

  2. 運行遊戲以檢查所有零件的顏色是否更改。

總結

與其總是直接按名稱和位置引用零件,不如使用 script.Parent 作為替代。該代碼將獲取附加到腳本的父物件,從而使腳本能夠對其進行修改。使用 script.Parent 這樣的代碼將對於讓您的代碼可重用非常有幫助。一個需要記住的缺點是,如果您想更改代碼,現在有多個腳本需要更新。