ProximityPrompt วัตถุ กระตุ้นการมีส่วนร่วมของผู้ใช้เพื่อกระตุ้นการกระทำเมื่อพวกเขาเข้าใกล้วัตถุในเกม เช่น ประตู, สวิตช์ไฟ, และปุ่มต่างๆ โดยใช้วัตถุนี้ คุณสามารถ:
- ระบุว่าวัตถุใดที่ผู้ใช้สามารถมีส่วนร่วมในเกม
- แสดงการกระทำที่ผู้ใช้สามารถทำกับวัตถุ จากนั้นกระตุ้นการกระทำผ่านการป้อนข้อมูลของผู้ใช้ เช่น การกดหรือการกดค้างปุ่ม
- แสดงการป้อนข้อมูลที่ถูกต้องสำหรับประเภทการป้อนข้อมูลทั้งหมด เช่น คีย์บอร์ด, จอยสติ๊ก, และปุ่มหน้าจอสัมผัส
สร้างการแจ้งเตือนใกล้ชิด
คุณต้องเชื่อมโยงการแจ้งเตือนใกล้ชิดกับส่วน, โมเดล, หรือการแนบที่คุณต้องการให้ผู้ใช้มีส่วนร่วมด้วย เพื่อเพิ่มการแจ้งเตือนใกล้ชิดไปยังวัตถุ BasePart, Model, หรือ Attachment:
ในหน้าต่าง Explorer ให้เลื่อนเมาส์ไปที่ BasePart, Model, หรือ Attachment และคลิกที่ปุ่ม ⊕ เมนูบริบทจะแสดงขึ้น
จากเมนู ให้แทรก ProximityPrompt.

ปรับแต่งการแจ้งเตือนใกล้ชิด
คุณสามารถปรับแต่งการแจ้งเตือนใกล้ชิดตามวิธีที่คุณต้องการให้มัน ปรากฏ, เมื่อใดที่คุณต้องการให้มัน มองเห็นได้, และสิ่งที่คุณต้องการให้ผู้ใช้ทำเพื่อ กระตุ้นการกระทำ.
การปรากฏ
การแจ้งเตือนใกล้ชิดต้องสื่อสารสามสิ่ง:
- วัตถุ ที่ผู้ใช้สามารถมีส่วนร่วมได้
- การกระทำ ที่กระตุ้นเมื่อพวกเขามีส่วนร่วมกับการแจ้งเตือนใกล้ชิด
- คีย์ ที่ผู้ใช้ต้องกดหรือกดค้าง
คุณสามารถระบุสิ่งเหล่านี้ผ่านคุณสมบัติต่อไปนี้:
ObjectText ชื่อที่เลือกได้สำหรับวัตถุที่ผู้ใช้สามารถมีส่วนร่วมได้
ActionText ชื่อที่เลือกได้สำหรับการกระทำที่ผู้ใช้จะกระตุ้น
KeyboardKeyCode คีย์บอร์ดที่ผู้ใช้ต้องกดหรือกดค้างเพื่อกระตุ้นการกระทำ
GamepadKeyCode คีย์จอยสติ๊กที่ผู้ใช้ต้องกดหรือกดค้างเพื่อกระตุ้นการกระทำ

การมองเห็น
คุณสามารถควบคุมว่าเมื่อใดที่การแจ้งเตือนใกล้ชิดมองเห็นได้ผ่านคุณสมบัติ MaxActivationDistance, RequiresLineOfSight, และ Exclusivity.
MaxActivationDistance
คุณสมบัติ MaxActivationDistance ช่วยให้คุณกำหนดระยะห่างจากรอบๆ วัตถุ ProximityPrompt ที่กระตุ้นการมองเห็นของการแจ้งเตือนใกล้ชิด เมื่อใดก็ตามที่ตัวละครของผู้ใช้เข้าไปในระยะนั้น การแจ้งเตือนใกล้ชิดจะปรากฏขึ้น

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

การมีส่วนร่วม
คุณสามารถปรับแต่งวิธีที่ผู้ใช้มีส่วนร่วมกับการแจ้งเตือนใกล้ชิดผ่านคุณสมบัติ HoldDuration และ ClickablePrompt.
HoldDuration
คุณสมบัติ HoldDuration กำหนดจำนวนวินาทีที่ผู้ใช้ต้องกดคีย์ก่อนที่การกระทำของการแจ้งเตือนใกล้ชิดจะถูกกระตุ้น หากคุณสมบัตินี้มีค่าเป็น 0 การกระทำของการแจ้งเตือนใกล้ชิดจะถูกกระตุ้นทันที
ClickablePrompt
คุณสมบัติ ClickablePrompt ระบุว่าผู้ใช้สามารถคลิกที่การแจ้งเตือนใกล้ชิดเพื่อกระตุ้นการกระทำของมันได้หรือไม่ เมื่อถูกตั้งค่าเป็น true ผู้ใช้สามารถมีส่วนร่วมกับการแจ้งเตือนใกล้ชิดโดยการคลิกที่การแจ้งเตือนใกล้ชิดโดยตรง หรือ โดยการกดคีย์ที่ระบุ เมื่อถูกตั้งค่าเป็น false ผู้ใช้สามารถมีส่วนร่วมกับการแจ้งเตือนใกล้ชิดได้เพียงแค่การกดคีย์ที่ระบุเท่านั้น
สคริปต์การแจ้งเตือนใกล้ชิด
คุณสามารถเชื่อมต่อกับเหตุการณ์การแจ้งเตือนใกล้ชิดได้ทั้งที่วัตถุ ProximityPrompt เองหรือทั่วโลกผ่าน ProximityPromptService. ProximityPromptService ช่วยให้คุณจัดการพฤติกรรมการแจ้งเตือนใกล้ชิดทั้งหมดจากที่เดียว ป้องกันไม่ให้ต้องมีโค้ดซ้ำในเกมของคุณ
| เหตุการณ์ | คำอธิบาย |
|---|---|
| PromptTriggered | เกิดขึ้นเมื่อผู้เล่นมีส่วนร่วมกับการแจ้งเตือนใกล้ชิด (หลังจากระยะเวลาสำหรับการแจ้งเตือนที่มี HoldDuration ที่ไม่เป็นศูนย์) |
| PromptTriggerEnded | เกิดขึ้นเมื่อผู้เล่นหยุดมีส่วนร่วมกับการแจ้งเตือนใกล้ชิด |
| PromptButtonHoldBegan | เกิดขึ้นเมื่อผู้เล่นเริ่มมีส่วนร่วมกับการแจ้งเตือนใกล้ชิดที่มีค่า HoldDuration ที่ไม่เป็นศูนย์ |
| PromptButtonHoldEnded | เกิดขึ้นเมื่อผู้เล่นหยุดมีส่วนร่วมกับการแจ้งเตือนใกล้ชิดที่มีค่า HoldDuration ที่ไม่เป็นศูนย์ |
| PromptShown | เกิดขึ้นใน LocalScripts เมื่อการแจ้งเตือนใกล้ชิดถูกทำให้มองเห็นได้ |
| PromptHidden | เกิดขึ้นใน LocalScripts เมื่อการแจ้งเตือนถูกซ่อน |
ตัวอย่างโค้ดต่อไปนี้รวมถึงโครงสร้างพื้นฐานพื้นฐานสำหรับการใช้ 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)