โดยปกติแล้ว ฟังก์ชันสามารถใช้ข้อมูลที่มีการเขียนไว้ภายในมันเท่านั้น อย่างไรก็ตามในบางครั้ง คุณอาจจะไม่รู้ล่วงหน้าว่าข้อมูลนั้นจะเป็นอะไร หรือคุณต้องการที่จะสามารถใช้ฟังก์ชันเดียวกันกับข้อมูลที่คล้ายกันหลาย ๆ ชิ้นได้ ตัวอย่างเช่น หากคุณต้องการใช้ฟังก์ชันเพื่อแสดงชื่อของผู้ที่จบหลักสูตร obby ได้อย่างรวดเร็วที่สุดในตัวอักษรใหญ่ให้ทุกคน คุณจะไม่รู้ชื่อของผู้ชนะในอนาคตจนกว่าการแข่งขันจะสิ้นสุดลง
พารามิเตอร์ คือสัญลักษณ์แทนข้อมูลที่คุณต้องการส่งให้ฟังก์ชันในภายหลัง พวกมันเปรียบเสมือนหน้าต่างที่อนุญาตให้คุณ ส่ง ข้อมูลไปยังฟังก์ชัน
ใช้พารามิเตอร์และเหตุการณ์ในการตั้งกับดัก
สคริปต์นี้จะสร้างชิ้นส่วนกับดักที่ทำลายอะไรก็ตามที่สัมผัสกับชิ้นส่วนนั้น รวมถึงชิ้นส่วนอื่น ๆ คุณจะต้องใช้พารามิเตอร์เพื่อทำการตั้งค่า อย่าลืมตั้งกับดักในที่ที่มันไม่ตกลงไปและทำลายสิ่งต่าง ๆ โดยไม่ตั้งใจ
สร้างชิ้นส่วนใหม่
ต้องมีการตั้งค่าชิ้นส่วนที่จะทำลายอะไรก็ตามที่สัมผัสมัน
- สร้างชิ้นส่วนใหม่ที่ไม่สัมผัสกับอะไร หากมันสัมผัสอยู่กับอะไรบางอย่างมันอาจจะทำงานเร็วเกินไป
- ใน Explorer ให้เปลี่ยนชื่อชิ้นส่วน: TrapPart
- บดเคลื่อน ชิ้นส่วน
ตั้งค่าสคริปต์
ใช้สิ่งที่คุณรู้เกี่ยวกับตัวแปรและลำดับชั้นของประสบการณ์ในการอ้างอิงชิ้นส่วนกับดัก
เพิ่มสคริปต์ใหม่ลงในชิ้นส่วนกับดัก เปลี่ยนชื่อสคริปต์เป็น TrapScript
ลบ Hello World และเพิ่มความคิดเห็นที่บรรยาย
ใต้ความคิดเห็น สร้างตัวแปรใหม่ที่ค้นหาพ่อแม่ของสคริปต์
-- ทำลายอะไรก็ตามที่สัมผัสพ่อแม่local trap = script.Parent
สร้างฟังก์ชันด้วยพารามิเตอร์
กับดักจะใช้ฟังก์ชันเพื่อทำลายอะไรก็ตามที่สัมผัสชิ้นส่วน เพื่อให้ทำงานได้ ฟังก์ชันต้องรู้ว่าสิ่งใดสัมผัสกับชิ้นส่วน นั่นหมายความว่าต้องใช้พารามิเตอร์ พารามิเตอร์จะถูกพิมพ์ใน () ที่ตามหลังชื่อฟังก์ชัน รูปร่างจะเป็นดังนี้:
local function functionName(parameterName)
end
ข้อมูลจริงที่ถูกส่งผ่านพารามิเตอร์เรียกว่า อาร์กิวเมนต์ คุณจะสร้างฟังก์ชันใหม่ชื่อว่า onTouch() โดยมีพารามิเตอร์ชื่อ objectTouched ที่จะติดตามอะไรก็ตามที่สัมผัสกับกับดักและจากนั้นทำลายชิ้นส่วนที่สัมผัส
สร้างฟังก์ชันในท้องถิ่น สามารถตั้งชื่ออะไรก็ได้ แต่บทเรียนนี้จะใช้ชื่อ onTouch
local trap = script.Parentlocal function onTouch()endใต้ (), พิมพ์ชื่อสำหรับพารามิเตอร์ บทเรียนนี้จะใช้ objectTouched
local trap = script.Parentlocal function onTouch(objectTouched)endระหว่าง local function onTouch() และ end, สร้างคำสั่ง print คุณจะใช้คำสั่งนี้เพื่อตรวจสอบว่ามีอะไรสัมผัสชิ้นส่วนนั้นในส่วนถัดไป
local trap = script.Parentlocal function onTouch(objectTouched)print("มีสิ่งของสัมผัสกับกับดัก")end
ใช้เหตุการณ์เพื่อเรียกฟังก์ชัน
เราต้องการให้ฟังก์ชันทำงานเมื่อไหร่ก็ตามที่มีสิ่งสัมผัสชิ้นส่วน เพื่อให้เป็นเช่นนั้นเชื่อมต่อฟังก์ชันกับเหตุการณ์ Touched เหตุการณ์ คือสิ่งที่เกิดขึ้นในประสบการณ์ เช่น ผู้เล่นสัมผัสชิ้นส่วนหรือสูญเสียสุขภาพ เมื่ฟังก์ชันเชื่อมต่อกับเหตุการณ์ ฟังก์ชันจะทำงานเมื่อเหตุการณ์นั้นเกิดขึ้น
เหตุการณ์ Touched จะเกิดขึ้นเมื่อชิ้นส่วนหนึ่งสัมผัสกับชิ้นส่วนอีกชิ้นและสามารถนำไปสร้างปุ่ม กับดัก และวัตถุอื่น ๆ ที่ผู้เล่นมีปฏิสัมพันธ์ด้วย
ใต้ end ของฟังก์ชัน, พิมพ์ trap.Touched:Connect(onTouch)
local trap = script.Parentlocal function onTouch(objectTouched)print("มีสิ่งของสัมผัสกับกับดัก")end-- เชื่อมต่อฟังก์ชันกับเหตุการณ์ Touchedtrap.Touched:Connect(onTouch)คลิกทดสอบและแล้วสัมผัสชิ้นส่วน ตรวจสอบคำสั่ง print ทดสอบของคุณ: มีสิ่งของสัมผัสกับกับดัก หากคุณไม่เห็นสตริงในหน้าต่าง Output ให้ตรวจสอบสิ่งต่อไปนี้:
- ตรวจสอบให้แน่ใจว่าสตริง "มีสิ่งของสัมผัสกับชิ้นส่วน!" อยู่ระหว่าง local function onTouch() และ end
- ตรวจสอบว่า Touched ถูกพิมพ์ด้วยตัวพิมพ์ใหญ่
ตอนนี้ฟังก์ชันถูกตั้งค่าอย่างถูกต้องแล้ว ใช้ฟังก์ชันเพื่อลบอะไรก็ตามที่สัมผัสชิ้นส่วน ภายในฟังก์ชัน หลังจากสตริง พิมพ์ objectTouched:Destroy() โค้ดที่เสร็จสมบูรณ์จะเป็นดังนี้:
local trap = script.Parentlocal function onTouch(objectTouched)print("มีสิ่งของสัมผัสกับกับดัก")-- ทำลายวัตถุที่สัมผัสobjectTouched:Destroy()endtrap.Touched:Connect(onTouch)ทดสอบอีกครั้งและดูสิ่งที่เกิดขึ้นเมื่อชิ้นส่วนถูกสัมผัส อวตารของคุณควรไม่มีเท้าหรือแขน หากชิ้นส่วนสัมผัสศีรษะหรือคอของอวตาร มันอาจจะถูกทำลายไปโดยสิ้นเชิง
สรุป
พารามิเตอร์ถูกใช้เพื่อส่งข้อมูลที่มักจะอยู่นอกขอบเขต (ซึ่งฟังก์ชันไม่สามารถมองเห็นได้) เข้าไปในฟังก์ชัน ขณะเดียวกัน เหตุการณ์คือสัญญาณพิเศษที่เกิดขึ้นภายในประสบการณ์เมื่อสิ่งสำคัญเกิดขึ้น วัตถุต่าง ๆ จะมีเหตุการณ์ที่แตกต่างกัน ฟังก์ชันสามารถเชื่อมต่อกับเหตุการณ์เพื่อให้มันถูกเรียกทุกครั้งที่เหตุการณ์นั้นถูกปล่อยออกมา สคริปต์เล็ก ๆ นี้เชื่อมต่อฟังก์ชันกับเหตุการณ์ Touched ของกับดัก และส่งข้อมูลเกี่ยวกับสิ่งที่สัมผัสกับกับดักผ่านพารามิเตอร์