แทนที่จะรันสคริปต์จาก ServerScriptService คุณอาจต้องการแนบสคริปต์ไปยังส่วนหนึ่ง ตัวอย่างเช่น การใช้สคริปต์เพื่อเปลี่ยนส่วนหนึ่งให้เป็นกับดักหรือทำให้ส่วนหนึ่งให้คะแนนผู้เล่นเมื่อพวกเขาสัมผัสมัน โดยการเข้าใจว่าสคริปต์และส่วนต่างๆ มีความสัมพันธ์กันในลำดับชั้น คุณสามารถสร้างสคริปต์ที่ทำงานโดยอัตโนมัติโดยไม่ต้องตั้งชื่อว่าส่วนไหนที่จะใช้
เพื่อทำเช่นนี้ คุณต้องเข้าใจ ความสัมพันธ์ระหว่างผู้ปกครองและเด็ก
ผู้ปกครองและเด็กเป็นวิธีในการอธิบายลำดับชั้นระหว่างวัตถุต่างๆ ทุกครั้งที่คุณเพิ่มส่วนใหม่ลงใน Workspace Workspace จะเป็นวัตถุผู้ปกครอง และส่วนจะกลายเป็นวัตถุเด็ก เมื่อคุณเพิ่มสคริปต์ไปยัง ServerScriptService ServerScriptService จะเป็นผู้ปกครอง และสคริปต์จะเป็นเด็กใหม่
ตั้งค่าโครงการและสคริปต์
เพื่อแสดงความสัมพันธ์ระหว่างผู้ปกครองและเด็ก คุณจะเริ่มต้นด้วยส่วนเดียวที่เปลี่ยนสีและจากนั้นทำการคัดลอกสคริปต์ไปยังหลายส่วน
สร้างส่วนใหม่และเปลี่ยนชื่อ มาบทเรียนนี้จะใช้ชื่อ ColorPart
คลิกขวาที่ ส่วน และเลือก Insert Object ⟩ New Script เปลี่ยนชื่อสคริปต์เป็น ColorChanger.

คัดลอกและวางโค้ดด้านล่างลงใน ColorChanger โค้ดเวอร์ชันนี้เหมือนกับที่คุณใช้ก่อนหน้านี้ มันกำหนดส่วนเฉพาะให้กับตัวแปร
เปลี่ยนสีของ ColorPartlocal 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)
ทดสอบส่วนที่นำกลับมาใช้ใหม่
ตอนนี้ตัวแปรจะอ้างอิงถึงส่วนใดๆ ที่สคริปต์แนบอยู่ คุณสามารถทำสำเนาได้ตามต้องการ
คลิกขวาที่ส่วนสีและเลือก Duplicate หรือใช้ปุ่มลัด CtrlD (⌘D) สร้างส่วนอย่างน้อยสามส่วนรวม
รันเกมเพื่อตรวจสอบว่าส่วนทั้งหมดเปลี่ยนสี
สรุป
แทนที่จะอ้างอิงถึงส่วนโดยตรงด้วยชื่อและตำแหน่งเสมอ คุณสามารถใช้ script.Parent เป็นทางเลือก โค้ดนั้นจะดึงผู้ปกครองหรือวัตถุที่สคริปต์แนบอยู่ ทำให้สคริปต์สามารถทำการปรับเปลี่ยนได้ การใช้โค้ดเช่น script.Parent จะมีประโยชน์ในการทำให้โค้ดของคุณนำกลับมาใช้ใหม่ได้ ข้อเสียที่ต้องจำคือคุณมีสคริปต์หลายตัวที่ต้องอัปเดตหากคุณต้องการเปลี่ยนโค้ด