ส่วนใหญ่ของเซสชัน Roblox เล่นบนอุปกรณ์ที่มีเมาส์และแป้นพิมพ์ ดังนั้นจึงเป็นสิ่งสำคัญที่ต้องสนับสนุนการใส่ข้อมูลเหล่านี้อย่างถูกต้องเมื่อออกแบบประสบการณ์สำหรับผู้ชมจำนวนมากเมื่อคุณสบายใจกับการใช้งานด้วยเมาส์และแป้นพิมพ์แล้ว ทำให้ประสบการณ์ของคุณเป็นไปตามมาตรฐานบนหลายแพลตฟอร์มโดยการตั้งค่าการใช้งาน มือถือ และ เกมแพด
เพื่อความสะดวก Roblox ตั้งค่าการใช้งานเมาส์และแป้นพิมพ์ที่พบบ่อยที่สุดเป็น การผูกมัดเริ่มต้น ซึ่งยกเว้นการผูกมัดที่สงวนไว้คุณสามารถเขียนทับได้
การใส่เมาส์ทั่วไป
เช่นเดียวกับการใส่ข้อมูลอุปกรณ์ทั้งหมดคุณสามารถจับการใส่ข้อมูลของเมาส์โดยใช้ UserInputServiceบริการนี้ให้วิธีที่ปรับขนาดได้ในการจับการเปลี่ยนแปลงของอินพุตและสถานะการรับอุปกรณ์สำหรับอุปกรณ์หลายตัวในครั้งเดียวRoblox ยังสนับสนุนการตรวจจับการใช้งานเมาส์รุ่นเก่าด้วย PlayerMouse และ ClickDetectors
นอกจากนี้คุณสามารถใช้ ContextActionService เพื่อจัดการการดำเนินการหลายอย่างบนอินพุตเดียวตามบริบท เช่น ใช้เครื่องมือเมื่ออยู่ใกล้กับหิน หรือเปิดประตูเมื่ออยู่ภายในอาคารดู การป้อนข้อมูลที่ขึ้นอยู่กับบริบท สำหรับข้อมูลเกี่ยวกับการตั้งค่าการดำเนินการป้อนข้อมูลเฉพาะบริบท
ต่อไปนี้ LocalScript , เมื่อวางใน StarterPlayerScripts จะจับการคลิกของเมาส์และพิมพ์ตำแหน่งเมาส์ลงในหน้าต่าง ออก:
สคริปท์ท้องถิ่น - ออกคลิกเมาส์และตำแหน่ง
local UserInputService = game:GetService("UserInputService")
local function onInputEnded(inputObject, processedEvent)
-- ตรวจสอบก่อนว่า "processedEvent" เป็นจริง
-- สิ่งนี้บ่งชี้ว่าสคริปต์อื่นได้ประมวลผลการใส่แล้วดังนั้นสคริปต์นี้จะถูกเพิกเฉย
if processedEvent then return end
-- ต่อไปตรวจสอบว่าการใส่เป็นเหตุการณ์เมาส์
if inputObject.UserInputType == Enum.UserInputType.MouseButton1 then
print("Left Mouse button was pressed:", inputObject.Position)
elseif inputObject.UserInputType == Enum.UserInputType.MouseButton2 then
print("Right Mouse button was pressed:", inputObject.Position)
end
end
UserInputService.InputEnded:Connect(onInputEnded)
การใส่ข้อมูลแป้นพิมพ์ทั่วไป
เพื่อเข้าถึงเหตุการณ์แป้นพิมพ์ใช้เหตุการณ์ UserInputService.InputEnded เพื่อติดตามเมื่อใดก็ตามที่แป้นพิมพ์หรือการป้อนข้อมูลอื่นสิ้นสุดคล้ายกับการเหตุการณ์เมาส์ นี้จะทำงานได้ภายใน LocalScript เท่านั้น
ต่อไปนี้ LocalScript , เมื่อวางใน StarterPlayerScripts , จะพิมพ์ Enum.KeyCode ของแป้นกดที่กดไปยังหน้าต่าง ออก:
local UserInputService = game:GetService("UserInputService")
local function onInputEnded(inputObject, processedEvent)
-- ตรวจสอบก่อนว่า "processedEvent" เป็นจริง
-- ซึ่งบ่งชี้ว่าสคริปต์อื่นได้ประมวลผลการใส่แล้วดังนั้นสคริปต์นี้จะถูกเพิกเฉย
if processedEvent then return end
-- ต่อไปตรวจสอบว่าการใส่เป็นเหตุการณ์แป้นพิมพ์
if inputObject.UserInputType == Enum.UserInputType.Keyboard then
print("A key was released: " .. inputObject.KeyCode.Name)
end
end
UserInputService.InputEnded:Connect(onInputEnded)
การใส่ข้อมูล UI
การใส่ข้อมูลด้วยเมาส์และแป้นพิมพ์ทำงานโดยอัตโนมัติกับองค์ประกอบ UI โต้ตอบเช่น TextButtons และ ImageButtons รวมถึง TextBoxes ซึ่งจับการใส่ข้อความเช่นฟิลด์ในแบบฟอร์ม
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างปุ่มและวัตถุการใส่ข้อความดูที่ ปุ่ม และ การใส่ข้อความ
โหมดการเคลื่อนที่ของตัวละคร
คุณสามารถตั้งค่ามาตรการควบคุมการเคลื่อนไหวของเมาส์และแป้นพิมพ์สำหรับประสบการณ์ Roblox โดยการเปลี่ยนค่าของ StarterPlayer.DevComputerMovementMode กำลังติดตาม:
ตัวเลือก | คําอธิบาย |
---|---|
ตัวเลือกของผู้ใช้ | สามารถให้ผู้ใช้เลือกแผนควบคุมที่ต้องการจากเมนูในประสบการณ์ได้ ตัวเลือกนี้เปิดใช้งานโดยค่าเริ่มต้น |
แป้นพิมพ์เมาส์ | ผู้ใช้สามารถกด WASD เพื่อย้ายและ Space เพื่อกระโดดนี่คือการตั้งค่าเริ่มต้นสำหรับผู้ใช้แป้นพิมพ์และเมาส์สำหรับการตั้งค่า ตัวเลือกของผู้ใช้ |
คลิกเพื่อย้าย | ผู้ใช้สามารถเคลื่อนที่ผ่านประสบการณ์ได้โดยคลิกขวาที่ตำแหน่งเป้าหมาย |
สามารถเขียนได้ | ปิดใช้งานการควบคุมเริ่มต้นทั้งหมดและอนุญาตให้คุณ ผูกควบคุมของคุณเอง |
ไอคอนเมาส์
คุณสามารถปรับแต่งรูปลักษณ์และพฤติกรรมของไอคอนเมาส์ของผู้ใช้ภายในประสบการณ์ของคุณเพื่อสร้างสไตล์ที่สอดคล้องกันสำหรับองค์ประกอบ UI ทั้งหมดซึ่งรวมถึงการเปลี่ยนไอคอนเมาส์ของผู้ใช้ชั่วคราวในสถานการณ์เฉพาะ เช่น เลื่อนเมาส์เหนือปุ่ม
เปลี่ยนไอคอน
คุณสามารถเปลี่ยนไอคอนเมาส์ของผู้ใช้ใน LocalScript โดยการตั้งค่าคุณสมบัติ MouseIcon ใน UserInputService เป็น ID ทรัพยากร Roblox ที่กําหนดเองตัวอย่างเช่น การเปลี่ยนแปลงต่อไปนี้ LocalScript เปลี่ยนไอคอนเมาส์เริ่มต้นของผู้ใช้เป็นวงกลมที่มีจุดสีฟ้าอยู่ตรงกลาง:
local UserInputService = game:GetService("UserInputService")UserInputService.MouseIcon = "rbxassetid://3400146391"
ซ่อนไอคอน
คุณสามารถซ่อนไอคอนเมาส์ของผู้ใช้โดยการตั้งค่า UserInputService.MouseIconEnabled เป็น false ใน LocalScriptตัวอย่างเช่น โค้ดต่อไปนี้สลับไอคอนเมาส์จากมองเห็นได้เป็นมองไม่เห็นและกลับทุกๆ สองวินาที:
local UserInputService = game:GetService("UserInputService")while true dotask.wait(2)UserInputService.MouseIconEnabled = falsetask.wait(2)UserInputService.MouseIconEnabled = trueend
ล็อคไอคอน
คุณสามารถล็อคตำแหน่งไอคอนเมาส์ไปยังหน้าจอโดยใช้ UserInputService.MouseBehavior ด้วยค่า Enum.MouseBehavior ของ LockCurrentPosition หรือ LockCenter จากนั้นปลดล็อกอีกครั้งด้วยค่า Default
หากไอคอนเมาส์ของผู้ใช้ถูกล็อคในตำแหน่ง UserInputService.InputChanged ยังคงยิงเมื่อผู้ใช้ย้ายเมาส์โดยส่งระยะทางที่เมาส์เคลื่อนที่ตัวอย่างโค้ดต่อไปนี้ล็อคไอคอนเมาส์ของผู้ใช้หลังจากหนึ่งวินาทีแล้ว Studio จะพิมพ์เดลต้าเมาส์เมื่อผู้ใช้ย้ายเมาส์:
local UserInputService = game:GetService("UserInputService")
task.wait(5)
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition
UserInputService.InputChanged:Connect(function(inputObject)
if inputObject.UserInputType == Enum.UserInputType.MouseMovement then
print("Mouse delta is (" .. tostring(inputObject.Delta.X) .. ", " .. tostring(inputObject.Delta.Y) .. ")")
end
end)
การผูกค่าเริ่มต้นของ Roblox
Roblox ให้การผูกคีย์เริ่มต้นสำหรับประสบการณ์ทั้งหมดนี่คือการใช้งานที่พบบ่อยที่สุดสำหรับการเคลื่อนไหวการควบคุมกล้องและการโต้ตอบสภาพแวดล้อมพื้นฐานโดยไม่ต้องใช้การผูกที่สงวนไว้คุณสามารถใช้ ContextActionService เพื่อสร้างการผูกระหว่างแพลตฟอร์มที่ให้ความสําคัญกับหลายการผูกในการดําเนินการเดียวตามที่อธิบายไว้ใน การป้อนข้อมูลที่ขึ้นอยู่กับบริบท
Enum.CoreGuiType คุณลักษณะ เช่น กระเป๋าเป้ หรือ แชท มีรายการของการใส่ข้อมูลเพิ่มเติมที่เป็นปกติคุณไม่สามารถเขียนทับอินพุตสำรองได้ เช่น Esc (เมนู Roblox) หรือ F9 (คอนโซลผู้พัฒนา)
การผูกเหล่านี้เป็นค่าเริ่มต้นของ Roblox แต่คุณสามารถยกเลิกได้ด้วยสคริปต์ที่กําหนดเองผู้ใช้ Roblox ส่วนใหญ่คุ้นเคยกับการควบคุมเหล่านี้ดังนั้นคุณควรปิดการใช้งานพวกเขาในกรณีเฉพาะเท่านั้น
อินพุต | การดำเนินการ |
---|---|
W↑ | ย้ายไปข้างหน้า |
S↓ | ย้อนกลับ |
A | ย้ายไปทางซ้าย |
D | ย้ายไปทางขวา |
Spacebar | กระโดด |
←→ | หมุนกล้องไปทางซ้ายหรือขวา |
ปุ่มเมาส์ด้านขวา | เมื่อกด ลากเมาส์เคลื่อนมุมมองกล้องไปรอบๆ |
ล้อเลื่อนเมาส์ IO | ซูมกล้องเข้าหรือออก |
Shift | สลับการล็อคเมาส์หาก EnableMouseLockOption เปิดใช้งาน |