เมื่อพัฒนาเกม Android สำหรับอุปกรณ์หลากหลายรูปแบบ ซึ่งรวมถึงอุปกรณ์แบบพับได้ แท็บเล็ต และหน้าจอขนาดใหญ่ ผู้เล่นมักจะเชื่อมต่อคอนโทรลเลอร์หรือเกมแพดภายนอก การไปยังส่วนต่างๆ ของเมนูด้วยคอนโทรลเลอร์อาจเป็นเรื่องยากสำหรับหน้าจอ UI ที่ออกแบบมาสำหรับการโต้ตอบด้วยการสัมผัสหรือเมาส์
แม้ว่าการออกแบบสถาปัตยกรรม UI ใหม่โดยอิงตามการนำทางด้วย D-pad มาตรฐานโดยทั่วไปจะมอบประสบการณ์การใช้งานที่ดีขึ้น แต่ก็อาจไม่สามารถทำได้เสมอไปสำหรับโปรเจ็กต์ที่มีอยู่ ระบบอินพุตของ Unity มีคอมโพเนนต์ VirtualMouseInput เป็นตัวเลือกอื่น
คอมโพเนนต์นี้ช่วยให้คุณควบคุมเคอร์เซอร์ซอฟต์แวร์เสมือนบนหน้าจอได้โดยใช้เกมแพดหรือคอนโทรลเลอร์ที่เชื่อมต่อ
เกี่ยวกับ VirtualMouseInput
คอมโพเนนต์ VirtualMouseInput เป็นยูทิลิตีระดับสูงในแพ็กเกจระบบอินพุตของ Unity ซึ่งเชื่อมโยงอินพุตของเกมแพดกับการควบคุมเคอร์เซอร์บนหน้าจอ การโต้ตอบของตัวชี้ UI และเหตุการณ์หน้าจอสัมผัสจำลอง เมื่อเปิดใช้งาน คอมโพเนนต์นี้จะทำสิ่งต่อไปนี้
- สร้างอุปกรณ์เมาส์เสมือน: ลงทะเบียนเมาส์จำลองซอฟต์แวร์ในระบบอินพุตของ Unity พร้อมกับอุปกรณ์ชี้ตำแหน่งจริง
- จับคู่การควบคุมของเกมแพดกับการทำงานของเคอร์เซอร์: คุณสามารถผูกอนาล็อกสติกหรือ D-pad เพื่อย้ายเคอร์เซอร์ไปทั่วหน้าจอ และจับคู่ปุ่มคอนโทรลเลอร์ (เช่น ปุ่มใต้ / A) เพื่อจำลองการคลิกเมาส์ซ้าย ขวา หรือกลาง
- ผสานรวมกับ Unity UI: องค์ประกอบ UI มาตรฐาน เช่น ปุ่ม ปุ่มเปิด/ปิด และแถบเลื่อน จะตอบสนองต่อเคอร์เซอร์เสมือนอย่างราบรื่นเหมือนกับที่ตอบสนองต่อเมาส์ฮาร์ดแวร์หรือการโต้ตอบด้วยการสัมผัส โดยทำงานร่วมกับ
InputSystemUIInputModuleได้อย่างราบรื่น - ขับเคลื่อนเคอร์เซอร์ภาพ: ช่วยให้คุณกำหนด
Graphicของ UI (เช่น คอมโพเนนต์Image) ที่ติดตามและแสดงตำแหน่งของเคอร์เซอร์เสมือนบนหน้าจอโดยอัตโนมัติ
รวมเมาส์เสมือนกับ TouchSimulation
หากเกมของคุณได้รับการออกแบบมาสำหรับหน้าจอสัมผัสโดยเฉพาะและใช้สคริปต์หรือ API การสัมผัสโดยตรง เมาส์เสมือนจะไม่ทริกเกอร์ตรรกะการตรวจจับการสัมผัสที่มีอยู่โดยอัตโนมัติ เนื่องจากระบบจะลงทะเบียนเป็นอุปกรณ์เมาส์แทนที่จะเป็นอุปกรณ์หน้าจอสัมผัส
หากต้องการรองรับการโต้ตอบของเคอร์เซอร์ที่ขับเคลื่อนด้วยเกมแพดโดยไม่ต้องเขียนโค้ดการจัดการการสัมผัสเดิม
คุณสามารถใช้ฟีเจอร์ของระบบอินพุตของ Unity
TouchSimulation ร่วมกับ VirtualMouseInput ได้
- วิธีการทำงาน: เมื่อเปิดใช้โดยใช้
TouchSimulation.Enable()ระบบอินพุตจะแปลงการคลิกและการเคลื่อนไหวของตัวชี้จากอุปกรณ์เมาส์ที่ใช้งานอยู่ทั้งหมด ซึ่งรวมถึงเมาส์จำลองซอฟต์แวร์ที่สร้างโดยVirtualMouseInputเป็นเหตุการณ์หน้าจอสัมผัสจำลองโดยอัตโนมัติ - โฟลว์ข้อมูลที่ได้: การโต้ตอบของสติกและปุ่มเกมแพดจะขับเคลื่อนเมาส์เสมือน ซึ่ง
TouchSimulationจะแปลเป็นการโต้ตอบแบบสัมผัสเดียว (Touchscreen) สคริปต์การตรวจจับการสัมผัสที่มีอยู่สามารถประมวลผลเหตุการณ์เหล่านี้ได้อย่างราบรื่นโดยไม่ต้องแก้ไขโค้ด - ข้อควรพิจารณา:
TouchSimulationจำกัดอยู่เพียงการจำลองตัวชี้แบบสัมผัสเดียว หากการเล่นเกมของคุณใช้ท่าทางสัมผัสหลายนิ้วที่ซับซ้อน เช่น การบีบเพื่อซูมหรือการหมุนด้วย 2 นิ้ว คุณต้องกำหนดค่าการผูกการทำงานของอินพุตเฉพาะสำหรับการควบคุมของเกมแพด
ดูรายละเอียดทางเทคนิค คุณสมบัติ และเอกสารประกอบการใช้งานทั้งหมดได้ใน
ข้อมูลอ้างอิงสคริปต์ UnityEngine.InputSystem.UI.VirtualMouseInput
และ UnityEngine.InputSystem.EnhancedTouch.TouchSimulation
อย่างเป็นทางการ