แทนที่จะรันสคริปต์จาก ServerScriptService คุณอาจต้องการแนบสคริปต์ไปยังส่วนตัวอย่างเช่น การใช้สคริปต์เพื่อเปลี่ยนส่วนให้เป็นกับดักหรือทำให้ส่วนหนึ่งให้แต้มผู้เล่นเมื่อสัมผัสโดยเข้าใจวิธีที่สคริปต์และส่วนเกี่ยวข้องกันในระดับชั้นวาระ คุณสามารถสร้างสคริปต์ที่ทำงานโดยอัตโนมัติโดยไม่ต้องระบุชื่อส่วนที่จะใช้
เพื่อทำเช่นนี้คุณต้องเข้าใจ ความสัมพันธ์ระหว่างพ่อและลูก พ่อแม่และเด็กเป็นวิธีที่จะอธิบายลำดับชั้นระหว่างวัตถุที่แตกต่างกันทุกครั้งที่คุณเพิ่มส่วนใหม่ลงในพื้นที่ทำงาน พื้นที่ทำงานเป็นวัตถุบิดา และส่วนกลายเป็นวัตถุลูกเมื่อคุณเพิ่มสคริปต์ใน ServerScriptService บริการ ServerScriptService เป็นพ่อและสคริปต์เป็นลูกใหม่
ตั้งค่าโครงการและสคริปต์
เพื่อสาธิตความสัมพันธ์ระหว่างพ่อและลูก คุณจะเริ่มต้นด้วยส่วนเดียวที่เปลี่ยนสีแล้วซ้ำสคริปต์ไปทั่วหลายส่วน
สร้างส่วนใหม่และเปลี่ยนชื่อใหม่ บทเรียนนี้จะใช้ ColorPart
คลิกขวาที่ ส่วน และเลือก สอดอัตโนมัติ > สคริปต์ใหม่ เปลี่ยนชื่อสคริปต์ ColorChanger
คัดลอกและวางโค้ดด้านล่างไปยัง ColorChanger รุ่นนี้ของโค้ดเป็นเช่นเดียวกับที่คุณใช้ก่อน มันจะกำหนดส่วนเฉพาะให้กับตัวแปร
เปลี่ยนสีของ ColorPartlocal Workspace = game:GetService("Workspace")local colorPart = Workspace.ColorPartcolorPart.Color = Color3.fromRGB(50, 240, 255)
4.ทดสอบและตรวจสอบว่าส่วนจะเปลี่ยนสีตามที่ต้องการ
ความสัมพันธ์ระหว่างพ่อและลูก
พ่อ เป็นอะไรก็ได้ที่มีวัตถุ เช่น สคริปต์หรือชิ้นส่วนที่แนบไว้ด้านล่าง ทุกอย่างภายใต้พ่อเป็นบุตร ของมัน .ในตัวอย่างด้านล่าง ColorPart เป็นพ่อ และ ColorChanger เป็นลูก

ด้วยสคริปต์ปัจจุบันคุณสามารถเปลี่ยนสีของส่วนเดียว ชื่อ ColorPart ได้เท่านั้นเพื่อเปลี่ยนสีของส่วนใดส่วนหนึ่ง คุณสามารถออกแบบโค้ดเพื่อทำงานกับวัตถุพ่วงของสคริปต์ ไม่ว่าจะเรียกว่าอะไรก็ตามรหัส script.Parent จะขึ้นไปในระดับชั้นและค้นหาวัตถุที่สคริปต์แนบมา
ใช้สคริปต์.Parent
script.Parent สามารถกำหนดให้กับตัวแปรเช่นค่าอื่นใดด้วยสัญลักษณ์ =
ในสคริปต์ให้แทนที่ส่วนที่มีชื่อด้วย script.Parent ตรวจสอบโค้ดด้านล่าง
เปลี่ยนสีของวัตถุรากlocal colorPart = script.ParentcolorPart.Color = Color3.fromRGB(50, 240, 255)
ทดสอบชิ้นส่วนที่ใช้ซ้ำ
ตอนนี้ตัวแปรจะอ้างอิงถึงส่วนใดก็ได้ที่สคริปต์ถูกแนบมา คุณสามารถทำสำเนาได้เท่าที่ต้องการ
คลิกขวาที่ส่วนสีและเลือกซ้ำหรือใช้ปุ่มลัด CtrlD ( ⌘D ).สร้างอย่างน้อยสามชิ้นส่วนทั้งหมด
เรียกเกมเพื่อตรวจสอบว่าทุกส่วนเปลี่ยนสี
สรุป
แทนที่จะอ้างอิงชิ้นส่วนโดยตรงตามชื่อและตำแหน่งเสมอ script.Parent สามารถใช้เป็นทางเลือกได้รหัสนั้นจะคว้าพ่อหรือวัตถุที่สคริปต์ติดอยู่ดังนั้นจึงทำให้สคริปต์ทำการแก้ไขได้การใช้รหัสเช่น script.Parent จะมีประโยชน์ในการทำให้โค้ดของคุณสามารถใช้ซ้ำได้ข้อเสียหนึ่งอย่างที่ต้องจำคือตอนนี้คุณมีสคริปต์หลายตัวที่ต้องการการอัปเดตหากต้องการเปลี่ยนโค้ด