在不從 ServerScriptService 執行腳本的情況下,您可能希望將腳本附加到零件上。例如,使用腳本將一個零件變成一個陷阱,或者使一個零件在玩家觸摸時給予分數。通過理解腳本和零件在層次結構中的關係,您可以創建一個自動工作的腳本,而不需要指定使用哪個零件。
要做到這一點,您必須了解 父母和孩子關係。
父母和孩子是用來描述不同物件之間層次結構的方式。每次您將新的零件添加到 Workspace 時,Workspace 都是父物件,而該零件成為了子物件。當您將腳本添加到 ServerScriptService 時,ServerScriptService 是父物件,腳本則是新的子物件。
設定項目和腳本
為了演示父母和孩子的關係,您將從一個改變顏色的單一零件開始,然後將腳本複製到多個零件中。
創建一個新的零件並重新命名。這節課將使用 ColorPart。
右鍵點擊 零件,然後選擇 插入物件 ⟩ 新建腳本。將腳本重新命名為 ColorChanger。
將以下代碼複製並粘貼到 ColorChanger 中。這段代碼的版本與您之前使用的相同。它將一個特定的零件分配給一個變數。
變更 ColorPart 的顏色local Workspace = game:GetService("Workspace")local colorPart = Workspace.ColorPartcolorPart.Color = Color3.fromRGB(50, 240, 255)測試並檢查零件是否按預期改變顏色。
父母和孩子的關係
父母 是任何具有附加物件(如腳本或零件)的物件。父母之下的任何物件都是它的 孩子。在下面的示例中,ColorPart 是父物件,而 ColorChanger 是子物件。

使用當前的腳本,您只能改變名為 ColorPart 的 單一零件 的顏色。要改變任何零件的顏色,您可以設計代碼,使其適用於腳本的父物件,無論它的名稱為何。代碼 script.Parent 將向上查找層次結構,找到腳本附加的物件。
使用 script.Parent
script.Parent 可以像其他值一樣,使用 = 符號分配給一個變數。
在腳本中,用 script.Parent 替換命名的零件。查看您的代碼如下。
變更父物件的顏色local colorPart = script.ParentcolorPart.Color = Color3.fromRGB(50, 240, 255)
測試可重用的零件
現在變數將指向腳本附加的任何零件,您可以隨意製作多個副本。
右鍵點擊顏色零件並選擇複製,或者使用熱鍵 CtrlD (⌘D)。至少創建三個零件。
運行遊戲以檢查所有零件的顏色是否更改。
總結
與其總是直接按名稱和位置引用零件,不如使用 script.Parent 作為替代。該代碼將獲取附加到腳本的父物件,從而使腳本能夠對其進行修改。使用 script.Parent 這樣的代碼將對於讓您的代碼可重用非常有幫助。一個需要記住的缺點是,如果您想更改代碼,現在有多個腳本需要更新。