คำสั่งใกล้เคียง

*เนื้อหานี้แปลโดยใช้ 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 ใหม่

ลักษณะของคำสั่ง

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

  • 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 เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ