แทนที่จะเรียกใช้งานสคริปต์จาก 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 จะทำให้โค้ดของคุณสามารถนำกลับมาใช้ใหม่ได้ หนึ่งในข้อเสียที่จะต้องจำไว้คือปัจจุบันคุณมีสคริปต์หลายตัวที่ต้องอัปเดตหากคุณต้องการเปลี่ยนแปลงโค้ด