มีส่วนใหญ่ของ Roblox เซสชันเล่นบนอุปกรณ์ที่มีเมาส์และคีย์บอร์ดดังนั้นจึงเป็นเรื่องสำคัญที่จะสนับสนุนการเข้าถึงเหล่านี้เมื่อออกแบบประสบการณ์สำหรับผู้ชมกว้าง
สำหรับความสะดวก Roblox ตั้งค่าการใช้งานเมาส์และเมาส์ที่พบบ่อยที่สุดให้เป็น การตั้งค่าเริ่มต้นซึ่งยกเว้นสำหรับการเปลี่ยนแปลงที่จำหน่ายไว้ คุณสามารถเขียนขึ้นได้
การป้อนเมาส์ทั่วไป
เหมือนการป้อนข้อมูลอุปกรณ์ทั้งหมด, คุณสามารถจับการป้อนข้อมูลของเมาส์โดยใช้ UserInputService นี้ บริการนี้ให้วิธีการป้อนข้อมูลและสถานะการป้อนของอ
นอกจากนี้คุณยังสามารถใช้ ContextActionService เพื่อจัดการหลายการกระทําในการประมวลผลครั้งเดียวขึ้นอยู่กับบริบที่ต้องการเช่นการใช้เครื่องมือเมื่ออยู่ใกล้หินหรือการเป
ต่อไป LocalScript เมื่อวางใน StarterPlayerScripts จับการคลิกเมาส์และพิมพ์ตำแหน่งเมาส์ไปยังหน้าต่าง Output ตัวออก:
LocalScript - การแสดงผลการคลิกเมาส์และตําแหน่ง
local UserInputService = game:GetService("UserInputService")
local function onInputEnded(inputObject, 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 เมื่อวางใน StarterPlayerScripts พิมพ์ Enum.KeyCode ของปุ่มกดที่กดไว้ในหน้าต่าง Enum.KeyCode วงล้อ:
local UserInputService = game:GetService("UserInputService")
local function onInputEnded(inputObject, 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 เพื่อเคลื่อนที่และ 1> พื้นที่ว่าง1> เพื่อกระโดด นี่คือการตั้งค่าค่าเริ่มต้นสำหรับผู้ใช้เครื่องและเมาส์สำหร |
คลิกเพื่อย้าย | ผู้ใช้สามารถเคลื่อนที่ผ่านประสบการณ์โดยการคลิกขวาที่ตำแหน่งเป้าหมาย |
สคริปต์ได้ | ปิดการควบคุมทั้งหมดและสามารถให้คุณ ผูกควบคุมของคุณเอง |
ไอคอนเมาส์
คุณสามารถปรับแต่งรูปลักษณ์และพฤติกรรมของไอคอนเมาส์ของผู้ใช้ภายในประสบการณ์ของคุณเพื่อสร้างสไตล์ที่เป็นหนึ่งเหมือนกันในทุกส่วน
เปลี่ยนไอคอน
คุณสามารถเปลี่ยนไอคอนเมาส์ของผู้ใช้ใน LocalScript โดยการตั้งค่าสมบัติของ MouseIcon ใน UserInputService เป็นไอคอ
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 แล้วปล
หากไอคอนเมาส์ของผู้ใช้ถูกล็อกในตำแหน่งใด ๆ UserInputService.InputChanged ยังคงปรากฏเมื่อผู้ใช้เคลื่อนเมาส์ โดยให้ระยะทางที่เมาส์เคลื่อนที่ไป
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 ให้การตั้งค่าการผูกสัญลักษณ์เริ่มต้นสำหรับทุกประสบการณ์ นี่คือการป้อนข้อมูลที่พบบ่อยที่สุดสำหรับการเคลื่อนไหวการควบคุมกล้อง และการใช้งาน
Enum.CoreGuiType คุณสมบัติเช่น Backpack หรือ Chat มีรายการข้อมูลที่เป็นปุ่มลัดเพิ่มเติม คุณไม่สามารถเขียนเขียวข้อมูลที่เป็นปุ่มลัดเช่น Esc (เมนู Roblox) ห
การตั้งค่าเหล่านี้เป็นการตั้งค่าเริ่มต้นของ Roblox แต่คุณสามารถเปลี่ยนแปลงได้ด้วยสคริปต์ที่กำหนดเอง ส่วนใหญ่ของผู้ใช้ Roblox คุ้นเคยกับการควบคุมเหล่านี้ดังนั้นคุณจึงควรเปลี่ยนแปลงเฉพาะในกรณีที่เหมาะสม
การป้อนข้อมูล | การกระทํา |
---|---|
Wขึ้น | ย้ายไปข้างหน้า |
Sลง | ย้อนกลับ |
A ตัวอักษร | ย้ายซ้าย |
D | ย้ายขวา |
ช่องว่าง | กระโดด |
←→ | หมุนกล้องซ้ายหรือขวา |
ปุ่มเมาส์ขวา | เมื่อกดลง การลากเมาส์จะเคลื่อนไหวมุมมองกล้อง |
ล้อเลื่อนเมาส์ ฉันO | ซูมกล้องเข้าหรือออก |
Shift ตัวเลือก | เปิด/ปิดการล็อคเมาส์ถ้า EnableMouseLockOption เปิด |