ปุ่มสามารถใช้โดยผู้เล่นเพื่อปลดล็อกพื้นที่ใหม่, มอบคะแนน, และเปิดเผยสมบัติ เมื่อใดก็ตามที่ผู้เล่นสัมผัสปุ่ม มันควรให้ข้อเสนอแนะแก่ผู้เล่นเพื่อให้รู้ว่ากำลังมีการโต้ตอบเช่น เปลี่ยนสีหรือสร้างเสียง
ในตัวอย่างนี้ ปุ่มจะถูกใช้เพื่อเปิดใช้งานสะพาน เมื่อปุ่มถูกกด มันจะเปลี่ยนเป็นสีเขียวและผู้เล่นจะสามารถใช้สะพานได้ หากผู้เล่นไม่ได้กดปุ่ม พวกเขาจะตกลงไปที่สะพานเมื่อพยายามเดินบนมัน
สร้างสะพาน
เริ่มต้นด้วยการตั้งค่าสะพาน
สร้างพื้นที่ในสิ่งแวดล้อมของคุณที่ผู้เล่นจะต้องการสะพาน
สร้างส่วนสำหรับสะพานและเปลี่ยนชื่อเป็น สะพาน
เลือกสะพาน ในหน้าต่างคุณสมบัติ:
- เปลี่ยน Transparency เป็น .5 สำหรับ Transparency, 0 คือมองเห็นได้, 1 คือมองไม่เห็น
- ตรวจสอบ Anchor
- ยกเลิกการเลือก CanCollide
เมื่อคุณทดสอบประสบการณ์ สะพานควรมีลักษณะเหมือนหมอกและผู้คนไม่ควรสามารถเดินบนมันได้

สร้างปุ่ม
ตอนนี้เมื่อสะพานถูกตั้งขึ้นแล้ว ให้สร้างปุ่มได้เลย
สร้างส่วนใหม่ชื่อ ปุ่ม
เปลี่ยนสีปุ่มเป็นสีแดง
Anchor ปุ่ม
ย้ายปุ่มให้ลอยอยู่เล็กน้อยและไม่สัมผัสกับสิ่งใด สิ่งนี้เพื่อให้มั่นใจว่าเหตุการณ์ Touched จะไม่ถูกกระตุ้นโดยไม่ได้ตั้งใจ

ทำให้ปุ่มสามารถโต้ตอบได้
ในครั้งนี้ แทนที่จะใช้เหตุการณ์ Touched เพื่อสร้างกับดัก คุณจะใช้มันเพื่อสร้างปุ่มที่ทำให้สะพานใช้งานได้ เพื่อทำให้สะพานสามารถชนได้ ให้ใช้รหัส bridge.CanCollide = true ภายในฟังก์ชันที่กำหนดเองที่ทำงานเมื่อผู้เล่นสัมผัสปุ่ม คุณรู้ทุกอย่างที่คุณต้องการเพื่อทำตามขั้นตอนถัดไป
ลองค้นหาคำตอบด้วยตัวคุณเองก่อนที่จะดูรหัสวิธีแก้
- แทรก สคริปต์ ใหม่ลงในปุ่มชื่อ ActivateBridge
- ลบ Hello World
- สร้างตัวแปรสำหรับสะพานและสำหรับปุ่ม
- สร้าง ฟังก์ชันท้องถิ่น ที่ทำสิ่งต่อไปนี้เมื่อปุ่มถูกสัมผัส:
- พิมพ์ "button touched"
- เปลี่ยนสีปุ่มจากสีแดงเป็นสีเขียวเมื่อถูกสัมผัส
- เปลี่ยนความโปร่งใสของสะพานเป็น 0 เพื่อทำให้มันมองเห็นได้
- ทำให้สะพานใช้งานได้โดยใช้รหัส bridge.CanCollide = true
- เชื่อมต่อฟังก์ชันเข้ากับเหตุการณ์ Touched ของปุ่ม
- ทดสอบสคริปต์และตรวจสอบให้แน่ใจว่าสะพานปรากฏขึ้นเมื่อปุ่มถูกสัมผัส
วิธีแก้ไขด้วยรหัส ด้านล่างเป็นวิธีแก้ไขรหัสที่เป็นไปได้หนึ่ง
-- แทรกสคริปต์นี้ลงในปุ่ม
-- เปลี่ยนปุ่มให้เป็นสีเขียวเมื่อมีบางสิ่งสัมผัสปุ่ม
local button = script.Parent
local bridge = workspace.Bridge
local function buttonPressed()
print("button touched")
button.Color = Color3.fromRGB(0, 170, 0)
bridge.Transparency = 0
bridge.CanCollide = true
end
button.Touched:Connect(buttonPressed)
แก้ไขปัญหาของคุณ
ปัญหา: สะพานเป็นของแข็งแล้วเมื่อประสบการณ์เริ่มต้นขึ้น ให้แน่ใจว่าส่วนต่างๆ ถูกตั้งค่าให้ Anchored และไม่สัมผัสกับอะไร สิ่งต่าง ๆ อาจสัมผัสกับบางสิ่ง เช่น สภาพภูมิประเทศหรือส่วนอื่น และทำให้ฟังก์ชัน buttonPressed() ทำงานโดยบังเอิญ
ปัญหา: คุณได้รับข้อผิดพลาดในหน้าต่าง Output โดยบอกว่า: "Bridge is not a valid member of Workspace" ตรวจสอบสิ่งต่อไปนี้:
- การตั้งชื่อของสะพานของคุณ สะพานในสคริปต์ของคุณต้องมีชื่อเหมือนใน Explorer
- ว่า part.Touched:Connect(buttonPressed) อยู่ข้างนอกฟังก์ชัน buttonPressed()
ความท้าทายในการเขียนโค้ดแบบเลือกได้
สคริปต์ในบทเรียนนี้ยังสามารถใช้เพื่อเก็บประตูที่ทำให้ผู้เล่นออกจากพื้นที่เฉพาะ ปรับปรุงทักษะการเขียนโค้ดของคุณและทำสิ่งต่อไปนี้:
- สร้างส่วนประตู
- สร้างปุ่มที่อยู่ห่างออกไปจากประตู
- เปลี่ยนสคริปต์ในบทเรียนนี้เพื่อทำให้ประตูเปลี่ยนความโปร่งใสและทำให้ผู้เล่นไม่สามารถชนกับมันได้
เวอร์ชันของคุณอาจมีลักษณะดังนี้:
local button = script.Parent
-- คำเตือน: เปลี่ยนชื่อส่วน Gate เป็นชื่อในโปรเจ็กต์ของคุณ
local gate = workspace.Gate
local function buttonPressed()
print("button touched")
-- เปลี่ยนปุ่มเป็นสีแดงเพื่อตอบสนองต่อผู้เล่น
button.BrickColor = BrickColor.Red() -- เปลี่ยนแปลงนี้
-- ทำให้ประตูมองไม่เห็น
gate.Transparency = 1
-- ทำให้ผู้เล่นสามารถเดินผ่านประตูได้
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)