ขอแนะนําแพ็คเกจระบบอินพุต

ปรับปรุงหน้า :
วันที่สร้างเพจ :

สภาพแวดล้อมการตรวจสอบ

หน้าต่าง
  • หน้าต่าง 11
บรรณาธิการ Unity
  • ปี 2020.3.25f1

เกี่ยวกับแพ็คเกจระบบอินพุต

ในช่วงแรกของ Unity เราใช้ Input Manager เป็นกลไกในการรับข้อมูลจากผู้ใช้ อย่างไรก็ตามในสภาพแวดล้อมของการกระจายแพลตฟอร์มเกมตัวจัดการอินพุตได้กลายเป็นล้าสมัย มีการเพิ่มกลไกใหม่สําหรับการจัดการอินพุตของผู้ใช้: Input Systemu Manager

ในปี 2022 ทั้ง "แพ็คเกจระบบอินพุต" ใหม่และ "ตัวจัดการอินพุต" สําหรับความเข้ากันได้พร้อมใช้งาน หากคุณมีโครงการเก่าคุณสามารถใช้ "ตัวจัดการอินพุต" ได้เหมือนเดิม ฉันคิดว่ามันจะเปลี่ยนไปเป็น "แพ็คเกจระบบอินพุต" ใหม่ในอนาคตดังนั้นในโครงการใหม่ ใช้ Input System Package

เนื้อหาส่วนนี้อธิบายวิธีการตั้งค่า

การติดตั้ง Input System Packages

ใน Unity Editor 2020.3.25f1 แพ็คเกจระบบอินพุตได้รับการจัดการเป็นแพ็คเกจที่ไม่ได้ติดตั้งครั้งแรก เมื่อต้องการติดตั้งแพคเกจ:

หลังจากสร้างโครงการของคุณและเปิดตัว Unity Editor ให้เลือก Window > Package Manager จากเมนู

เมื่อหน้าจอ Package Manager ปรากฏขึ้นให้เลือก "Unity Registry" จากแพ็คเกจ

หากคุณเลื่อนรายการทางด้านซ้ายลงจะมี "ระบบอินพุต" ดังนั้นให้เลือกและคลิกปุ่ม "ติดตั้ง" ที่ด้านล่างขวา

เมื่อติดตั้งแล้วจะแสดงเป็นติดตั้งแล้วดังนั้นให้ปิดกล่องโต้ตอบ

หากกล่องโต้ตอบต่อไปนี้ปรากฏขึ้นหลังจากติดตั้งแพ็คเกจให้คลิกปุ่ม "ใช่" เพื่อกําหนดค่า "เปิดใช้งานแพ็คเกจระบบอินพุต" ถัดไปโดยอัตโนมัติ ในกรณีนี้ Unity Editor จะรีสตาร์ท

This project is using the new input system package but the native platform backends for the new input system are not enabled in the player settngs. This means that no input from native devices will come through.

Do you want to enable the backends? Doing so *RESTART* the editor and will *DISABLE* the old UnityEngine.Input APIs.

เปิดใช้งานแพ็คเกจระบบอินพุต

เนื่องจากฉันเพิ่งติดตั้งแพ็คเกจฉันมีตัวจัดการอินพุตที่ล้าสมัยที่ใช้งานอยู่ในขณะนี้ สลับไปยังแพ็คเกจระบบอินพุต

เลือก แก้ไขการตั้งค่าโปรเจ็กต์> จากเมนู

เมื่อกล่องโต้ตอบ การตั้งค่าโปรเจ็กต์ เปิดขึ้น ให้เลือก Player จากเมนูด้านซ้าย

ในแท็บด้านล่าง ให้เลือก PC, Mac... เลือกแท็บ การตั้งค่า และขยาย การตั้งค่าเพิ่มเติม ในกลุ่มที่ด้านล่าง

หากคุณเลื่อนลงไปในระดับหนึ่งคุณจะพบรายการที่เรียกว่า "การประมวลผลอินพุตที่ใช้งานอยู่" ในหมวดหมู่ "การตั้งค่า" ซึ่งคุณสามารถเลือก "แพ็คเกจระบบอินพุต (ใหม่)" คุณสามารถเปิดใช้งานทั้งสองอย่างได้ในขณะนี้ แต่มันสับสนดังนั้นในกรณีของโครงการใหม่ควรใช้เฉพาะแพ็คเกจระบบอินพุตเท่านั้น

หลังจากทําการเปลี่ยนแปลงกล่องโต้ตอบต่อไปนี้จะปรากฏขึ้นดังนั้นคลิก "ใช้" เพื่อรีสตาร์ท Unity Editor

แค่นี้ก็เสร็จเรียบร้อย!

เกี่ยวกับปัญหาของการใช้ namespace "UnityEngine.InputSystem" ในการป้อนรหัสทําให้เกิดข้อผิดพลาด

ฉันยังไม่ได้ป้อนรหัสในขณะนี้ดังนั้นมันจะไม่เป็นข้อผิดพลาด คุณอาจได้รับข้อผิดพลาดว่า namespace ไม่มีอยู่เมื่อพยายามใช้เมื่อ UnityEngine.InputSystem ป้อนรหัส (ตัวอย่างเช่น Visual Studio)

ตัวอย่างเช่น หากคุณสร้างสคริปต์ก่อนติดตั้ง "Input System Package"

นี่เป็นเพราะโครงการ UnityEngine.InputSystem ไม่มีการอ้างอิงถึง . เมื่อต้องการแก้ไขปัญหานี้ ให้ทําดังต่อไปนี้

เลือก "แก้ไขการตั้งค่า>" จากเมนู

เลือก External Tools จากเมนูด้านซ้ายแล้วคลิกปุ่ม Regenerate project files

ด้วยการทําเช่นนี้ Visual Studio UnityEngine.InputSystem จะเพิ่มการอ้างอิง

นอกจากนี้รหัสยังปราศจากข้อผิดพลาด

เปลี่ยนการยอมรับการป้อนข้อมูลของผู้ใช้ใน UI เป็นแพ็คเกจระบบอินพุต

ฟิลด์นี้ไม่เกี่ยวข้องหากคุณไม่ได้ใช้ Unity UI เช่น ช่องป้อนข้อมูลหรือดรอปดาวน์ และควรละเว้น

เมื่อคุณวางช่องป้อนข้อมูล ดรอปดาวน์ หรืออื่นๆ ในมุมมอง Canvas จะถูกสร้างขึ้นโดยอัตโนมัติและวัตถุ UI จะถูกวางไว้ที่นั่น ในเวลาเดียวกันวัตถุที่เรียกว่า "EventSystem" ถูกสร้างขึ้น นี่คือวัตถุที่จัดการสิ่งที่เกิดขึ้นเมื่ออินพุตบางอย่างเสร็จสิ้นใน UI

EventSystem นี้เริ่มทํางานกับตัวจัดการอินพุตรุ่นเก่า หากเปิดใช้งานเฉพาะแพ็คเกจระบบอินพุต UI จะไม่ทํางานเหมือนเดิมดังนั้นคุณต้องเปลี่ยนเป็นแพ็คเกจระบบอินพุต

เมื่อต้องการทําการเปลี่ยนแปลง ก่อนอื่นให้เลือก EventSystem

จากนั้นคําเตือนจะแสดงใน "โมดูลอินพุตแบบสแตนด์อโลน" ในตัวตรวจสอบ

คลิกปุ่ม แทนที่ด้วย InputSystemUIInputModule เพื่อแทนที่โมดูลอินพุตแบบสแตนด์อโลนด้วย Input System UI Module

UI ในเกมของคุณควรยอมรับการป้อนข้อมูลอย่างถูกต้อง