ทุกเกมจำเป็นต้องรับการป้อนข้อมูลจากผู้ใช้เพื่อให้ผู้เล่นมีปฏิสัมพันธ์และมองเห็นสภาพแวดล้อมของพวกเขา Roblox รองรับรูปแบบการป้อนข้อมูลแทบทั้งหมด รวมถึง เมาส์/คีย์บอร์ด, สัมผัส, จอยสติ๊ก และ VR
การป้อนข้อมูลข้ามแพลตฟอร์ม
Roblox มีลักษณะเป็น ข้ามแพลตฟอร์ม โดยธรรมชาติ เนื่องจากผู้เล่นสามารถค้นหาและเข้าร่วมเกมบนโทรศัพท์หรือแท็บเล็ต แล้วต่อมาเล่นต่อจากจุดที่ค้างไว้บน PC หรือคอนโซลของพวกเขา การป้อนข้อมูลเป็นสิ่งที่สำคัญโดยเฉพาะอย่างยิ่งในแผนการพัฒนาข้ามแพลตฟอร์มของคุณ
เพื่อทำให้กระบวนการนี้ง่ายขึ้น Roblox มี ระบบการกระทำการป้อนข้อมูล เพื่อกำหนด การกระทำ เช่น "กระโดด", "วิ่ง" หรือ "ยิง" และตั้งค่าการ ผูก สำหรับฮาร์ดแวร์หลายตัวเพื่อขับเคลื่อนการกระทำนั้น ซึ่งจะช่วยให้คุณไม่ต้องคิดในแง่ของรายละเอียดเทคนิคทั้งหมดเกี่ยวกับการป้อนข้อมูลฮาร์ดแวร์และช่วยให้คุณกำหนดได้ง่ายว่า การป้อนข้อมูลใดจะทำการกระทำใด

การตรวจจับประเภทการป้อนข้อมูล
ในการพัฒนาข้ามแพลตฟอร์ม สิ่งสำคัญคือต้องกำหนดและตอบสนองต่อประเภทการป้อนข้อมูล หลัก ที่ผู้เล่นใช้ โดยปกติเพื่อให้แน่ใจว่า องค์ประกอบ UI เช่นปุ่มและเมนูบนหน้าจอทำงานได้อย่างราบรื่นข้ามอุปกรณ์
ตัวอย่างเช่น อุปกรณ์ที่รองรับการสัมผัสจะถือว่าการสัมผัสเป็นการป้อนข้อมูลเริ่มต้น และปุ่มสัมผัสอาจปรากฏขึ้นสำหรับการกระทำ แต่หากผู้เล่นเชื่อมต่อกับคีย์บอร์ด/เมาส์บลูทูธหรือจอยสติ๊กเพิ่ม คุณสามารถถือว่าพวกเขาต้องการเปลี่ยนไปใช้เป็นประเภทการป้อนข้อมูล หลัก และอาจใช้การสัมผัสเป็นการป้อนข้อมูลสำรองสำหรับ UI บนหน้าจอ คุณสมบัติ UserInputService.PreferredInput ที่เป็นแบบอ่านอย่างเดียวเป็นวิธีที่สะดวกในการตรวจสอบและปรับให้เข้ากับหลายประเภทการป้อนข้อมูลข้ามหลายประเภทอุปกรณ์ตามพฤติกรรมที่คาดว่าผู้เล่นจะทำ
ค่าของ PreferredInput จะแปรผันไปตามการป้อนข้อมูลของอุปกรณ์ที่มีอยู่และการโต้ตอบล่าสุดของผู้เล่นกับจอยสติ๊กหรือคีย์บอร์ด/เมาส์ที่เชื่อมต่อ ตัวอย่างได้แก่:
| สถานการณ์ในโลกจริง | PreferredInput |
|---|---|
| ผู้เล่นกำลังใช้โทรศัพท์โดยไม่มีอุปกรณ์ป้อนข้อมูลที่เชื่อมต่ออื่น ๆ; ไม่มีความสามารถในการเปลี่ยนประเภทการป้อนข้อมูล | Touch |
| ผู้เล่นกำลังใช้โทรศัพท์มือถือที่มีคีย์บอร์ดและเมาส์บลูทูธเชื่อมต่อ แต่ไม่มีจอยสติ๊กเชื่อมต่อ | KeyboardAndMouse |
| ผู้เล่นกำลังใช้แท็บเล็ตที่เชื่อมต่อกับจอยสติ๊กบลูทูธ แต่ไม่มีคีย์บอร์ดหรือเมาส์เชื่อมต่อ | Gamepad |
| ผู้เล่นอยู่บน Xbox หรือ PlayStation ที่มีคีย์บอร์ดและเมาส์บลูทูธเชื่อมต่อและโต้ตอบล่าสุดกับคีย์บอร์ดหรือเมาส์ | KeyboardAndMouse |
| ผู้เล่นกำลังใช้งาน PC Windows หรือ Mac ที่เชื่อมต่อกับจอยสติ๊กและโต้ตอบล่าสุดกับจอยสติ๊ก | Gamepad |
LocalScript ต่อไปนี้เป็นเทมเพลตสำหรับการตรวจจับการป้อนข้อมูลที่ต้องการในเบื้องต้นและตอบสนองต่อการเปลี่ยนแปลงในระหว่างการเล่นเกม
การตรวจจับ PreferredInput
local UserInputService = game:GetService("UserInputService")
local function preferredInputChanged()
local preferredInput = UserInputService.PreferredInput
if preferredInput == Enum.PreferredInput.Touch then
-- ผู้เล่นกำลังใช้งานอุปกรณ์ที่รองรับการสัมผัสโดยไม่มีประเภทการป้อนข้อมูลอื่น ๆ ที่มีอยู่/เชื่อมต่อ
print("Touch")
elseif preferredInput == Enum.PreferredInput.Gamepad then
-- ผู้เล่นมีจอยสติ๊กที่เชื่อมต่อหรือโต้ตอบล่าสุดกับจอยสติ๊ก
print("Gamepad")
elseif preferredInput == Enum.PreferredInput.KeyboardAndMouse then
-- ผู้เล่นมีคีย์บอร์ดหรือเมาส์ที่เชื่อมต่อหรือโต้ตอบล่าสุดกับคีย์บอร์ดหรือเมาส์
print("KeyboardAndMouse")
end
end
preferredInputChanged()
UserInputService:GetPropertyChangedSignal("PreferredInput"):Connect(function()
preferredInputChanged()
end)
การผูกค่าตั้งต้น
Roblox มีการควบคุมการป้อนข้อมูลเริ่มต้นสำหรับการเคลื่อนไหว การควบคุมกล้อง และการโต้ตอบกับสภาพแวดล้อมพื้นฐาน — ผู้เล่น Roblox คุ้นเคยกับการควบคุมเหล่านี้ ดังนั้นคุณควรเปลี่ยนแปลงเฉพาะในกรณีเฉพาะ นอกจากนี้ โปรดทราบว่าการป้อนข้อมูล ที่จองไว้ ไม่สามารถเปลี่ยนแปลงได้และจะทำงานตามวัตถุประสงค์ที่ตั้งใจไว้เสมอ
| การกระทำ | เมาส์/คีย์บอร์ด | เกมแพด | สัมผัส |
|---|---|---|---|
| เปิดเมนู Roblox | Esc | ปุ่มเริ่ม (ButtonStart) | ไม่สามารถใช้ได้ |
| คอนโซลนักพัฒนา | F9 | ไม่สามารถใช้ได้ | ไม่สามารถใช้ได้ |
| โหมดเต็มหน้าจอ (Windows) แสดงเดสก์ท็อป (Mac) | F11 | ไม่สามารถใช้ได้ | ไม่สามารถใช้ได้ |
| บันทึกวิดีโอ (Windows) | F12 | ไม่สามารถใช้ได้ | ไม่สามารถใช้ได้ |
| ถ่ายภาพหน้าจอ | PrintScreen | ไม่สามารถใช้ได้ | ไม่สามารถใช้ได้ |