คู่มือการใช้งานระดับกลาง

การกระตุ้นระยะใกล้

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

คุณสามารถสร้างข้อความกระตุ้นเชิงโต้ตอบที่ปรากฏเมื่อผู้ใช้เข้าใกล้วัตถุในพื้นที่ 3D ซึ่งจะกระตุ้นการกระทำเมื่อมีการป้อนข้อมูลจากผู้ใช้

บทช่วยสอนนี้ใช้โครงการ Dungeon Delve เป็นตัวอย่าง ในการติดตาม ขั้นแรกให้เปิดโครงการใน Studio ก่อนดำเนินการต่อ

ตัวเลือกแก้ไขใน Studio จากหน้าหลักของประสบการณ์

สร้างข้อความกระตุ้น

ข้อความกระตุ้นที่แสดงบนหน้าจอสร้างขึ้นโดยวัตถุ ProximityPrompt ที่มีแม่แบบเป็น Attachment, BasePart, หรือ Model

  1. เลือกรูปแบบ PrisonDoor ในมุมมอง 3D หรือจาก Explorer (WorkspacePromptObjectsPrisonDoor).

  2. ขยายต้นไม้ของมันและเลือกวัตถุ Door.

  3. การวางข้อความกระตุ้นบน Attachment จะทำให้คุณมีการควบคุมมากขึ้นเกี่ยวกับตำแหน่งที่เกิดการโต้ตอบ แทนที่จะวางโดยตรงบนส่วน/โมเดล แทรก Attachment ใหม่และเปลี่ยนชื่อเป็น PromptAttachment.

  4. หาคุณสมบัติ Position ของการเก็บใหม่และตั้งค่าเป็น -2.25, -0.5, -0.5 นี่จะทำให้มันเคลื่อนไปข้างหน้าของรูร้อยกุญแจของประตู

  5. เลื่อนเมาส์ไปที่ PromptAttachment และแทรกวัตถุ ProximityPrompt ใหม่.

การปรากฏของข้อความกระตุ้น

ข้อความกระตุ้นประกอบด้วย 3 องค์ประกอบหลัก ซึ่งแต่ละองค์ประกอบสามารถควบคุมได้ด้วยคุณสมบัติดังต่อไปนี้:

  • ObjectText — ชื่อทางเลือกสำหรับวัตถุที่ถูกโต้ตอบ
  • ActionText — ชื่อการกระทำทางเลือกที่แสดงให้ผู้ใช้เห็น
  • KeyboardKeyCode — ปุ่มคีย์บอร์ดที่จะกระตุ้นข้อความกระตุ้น
  • GamepadKeyCode — ปุ่มเกมแพดที่จะกระตุ้นข้อความกระตุ้น

เพื่อปรับแต่งการปรากฏของข้อความกระตุ้นประตูคุก ทำการเปลี่ยนแปลงดังต่อไปนี้:

  1. ในหน้าต่าง Properties ให้หาคุณสมบัติ ObjectText และพิมพ์ Door.

  2. สำหรับคุณสมบัติ ActionText ให้พิมพ์ Pick Lock.

ระยะการกระตุ้น

ข้อความกระตุ้นจะแสดงขึ้นเมื่อ ตัวละคร ของผู้ใช้เคลื่อนที่ภายในระยะ MaxActivationDistance ที่กำหนดจากผู้ปกครองของวัตถุข้อความกระตุ้น

ค่าดีฟอลต์ทำงานได้ดีในกรณีส่วนใหญ่ แต่คุณสามารถกดการโต้ตอบของผู้ใช้เข้าไปใกล้กุญแจโดยการเปลี่ยน MaxActivationDistance เป็น 4.

ระยะเวลาการถือ

ค่า HoldDuration กำหนดความเร็วที่การกระทำของข้อความกระตุ้นจะถูกกระตุ้นในวินาที เนื่องจากประตูนี้ต้องการการเลือกเพื่อปลดล็อก เปลี่ยนคุณสมบัติ HoldDuration เป็น 4.

ดำเนินการกระทำ

วิธีที่ดีที่สุดในการตรวจจับเหตุการณ์ข้อความกระตุ้นคือการใช้ ProximityPromptService — สิ่งนี้ช่วยให้คุณตรวจจับเหตุการณ์โดยเฉพาะโดยไม่ต้องแนบสคริปต์ไปยังแต่ละวัตถุข้อความกระตุ้น

แบบฟอร์มพื้นฐานคือดังนี้:


local ProximityPromptService = game:GetService("ProximityPromptService")
-- ตรวจจับเมื่อข้อความกระตุ้นถูกกระตุ้น
local function onPromptTriggered(promptObject, player)
end
-- ตรวจจับเมื่อเริ่มถือข้อความกระตุ้น
local function onPromptHoldBegan(promptObject, player)
end
-- ตรวจจับเมื่อการถือข้อความกระตุ้นสิ้นสุด
local function onPromptHoldEnded(promptObject, player)
end
-- เชื่อมต่อเหตุการณ์ข้อความกระตุ้นกับฟังก์ชันการจัดการ
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
เหตุการณ์คำอธิบาย
PromptTriggeredเกิดขึ้นเมื่อผู้ใช้โต้ตอบกับข้อความกระตุ้น (หลังจากระยะเวลาสำหรับข้อความกระตุ้นที่มี HoldDuration ที่ไม่เป็นศูนย์)
PromptButtonHoldBeganเกิดขึ้นเมื่อผู้ใช้เริ่มโต้ตอบกับข้อความกระตุ้นที่มี HoldDuration ที่ไม่เป็นศูนย์
PromptButtonHoldEndedเกิดขึ้นเมื่อผู้ใช้หยุดโต้ตอบกับข้อความกระตุ้นที่มี HoldDuration ที่ไม่เป็นศูนย์

ในโครงการ Dungeon Delve เหตุการณ์เหล่านี้ถูกจัดการโดยสคริปต์ PromptEvents ภายใน ServerScriptService

ภายในสคริปต์ เหตุการณ์ด้านบนเรียกฟังก์ชันใน ModuleScript ObjectActions ซึ่งตั้งอยู่ใน ServerScriptService ด้วย


local ProximityPromptService = game:GetService("ProximityPromptService")
local ServerScriptService = game:GetService("ServerScriptService")
local ObjectActions = require(ServerScriptService.ObjectActions)
-- ตรวจจับเมื่อข้อความกระตุ้นถูกกระตุ้น
local function onPromptTriggered(promptObject, player)
ObjectActions.promptTriggeredActions(promptObject, player)
end
-- ตรวจจับเมื่อเริ่มถือข้อความกระตุ้น
local function onPromptHoldBegan(promptObject, player)
ObjectActions.promptHoldBeganActions(promptObject, player)
end
-- ตรวจจับเมื่อการถือข้อความกระตุ้นสิ้นสุด
local function onPromptHoldEnded(promptObject, player)
ObjectActions.promptHoldEndedActions(promptObject, player)
end
-- เชื่อมต่อเหตุการณ์ข้อความกระตุ้นกับฟังก์ชันการจัดการ
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)

ข้อความกระตุ้นระยะใกล้เป็นโซลูชันที่สะดวกและสามารถปรับแต่งได้สำหรับการโต้ตอบกับวัตถุในเกม ตรวจสอบหน้าข้อมูลอ้างอิง ProximityPrompt และ ProximityPromptService สำหรับวิธีเพิ่มเติมในการควบคุมพฤติกรรมของข้อความกระตุ้น และสำรวจวัตถุเชิงโต้ตอบอื่นๆ ใน Dungeon Delve สำหรับแรงบันดาลใจในการสร้างสรรค์

©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ