คุณสามารถสร้างรายการโปรโมทใกล้ชิดที่มีรูปร่างเหมือนอยู่ในพื้นที่ 3D แล้วเรียกใช้การกระทําบนการป้อนข้อมูลของผู้ใช้
ในวิดีโอนี้ เราจะใช้โครงการ Dungeon Delve เป็นโครงการแสดงผล เพื่อติดตามการดำเนินการ เปิดให้ใช้ใน Studio ก่อนที่จะดำเนินการต่อ
สร้างรายการ
คำแนะนำบนหน้าจอจะถูกสร้างโดยวัตถุ ProximityPrompt ที่เป็นบรรพบุรุษของ Attachment หรือ BasePart หรือ 1> Class.Model1>
เลือก PrisonDoor โมเดลใน 3D มุมมองหรือจาก Explorer ( Workspace → PromptObjects → 1> PrisonDoor1> )
ขยายต้นไม้ของมันและเลือก ประตู วัตถุ
วางรายการบน Attachment ให้คุณควบคุมได้มากขึ้นว่าสถานที่ที่เกิดการใช้งานจะเกิดขึ้นที่ไหนเมื่อเปรียบเทียบกับการวางโดยตรงบนชิ้นส่วน/แบบ
ค้นหาสมบัติสกุลของส่วนที่แนบมาใหม่และตั้งค่าให้เป็น -2.25 คุณสามารถใช้ -0.5 และ - 0.5 เพื่อย้ายมันไปข้างหน้าของหลุมกุญแจประตู
เลื่อนเมาส์ไปที่ PromptAttachment และใส่วัตถุใหม่ ProximityPrompt
รูปลักษณ์ของการโปรมท
รายละเอียดประกอบด้วยสามส่วนหลักซึ่งสามารถควบคุมได้โดยลักษณะเงื่อนไขต่อไปนี้:
- Text วัตถุ — ชื่อที่ออปชันสำหรับวัตถุที่ใช้งาน
- ActionText — ชื่อการกระทําที่เป็นไปได้สําหรับผู้ใช้
- KeyboardKeyCode — รหัสปุ่มที่จะเรียกคำแจ้ง
- GamepadKeyCode — ปุ่มเกมพาดที่จะเรียกร้องการแจ้งเตือน
เพื่อปรับแต่งการปรากฏตัวของประตูเรือนจำให้เป็นไปตามที่ระบุไว้ต่อไปนี้:
ในหน้า การตั้งค่า ค้นหาสมบัติของคุณ เค้าโครงของเอกสาร และพิมพ์ ประตู
สำหรับสมบัติลักษณ์ ActionText ใส่ เลือกล็อค
ระยะการเปิดใช้งาน
ข้อความปรากฏขึ้นเมื่อตัวละครของผู้ใช้ เคลื่อนที่ภายในระยะ ** MaxActivationDistance ของตัวประกายเหตุการณ์ของพ่อของข้อความ Thai:ข้อความปรากฏขึ้นเมื่อตัวละครของผู้ใช้** ย้ายภายในระยะ 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 โดยใช้
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 สำหรับวิธีการควบคุมพ��