معرفی پکیج سیستم ورودی

صفحه به روز شده :
تاریخ ایجاد صفحه :

محیط تایید

ویندوز
  • ویندوز 11
ویرایشگر یونیتی
  • دانلود: 2020.3.25f1

درباره بسته سیستم ورودی

در روزهای اولیه Unity، ما از مدیر ورودی به عنوان مکانیسمی برای دریافت ورودی از کاربران استفاده کردیم. با این حال، در محیط تنوع سیستم عامل های بازی، مدیر ورودی منسوخ شده است. یک مکانیسم جدید برای مدیریت ورودی کاربر اضافه شده است: Input Systemu Manager.

از سال 2022، هر دو "بسته سیستم ورودی" جدید و "مدیر ورودی" برای سازگاری در دسترس هستند. اگر یک پروژه قدیمی دارید، می توانید از "مدیر ورودی" استفاده کنید. من فکر می کنم که در اینده به یک "بسته سیستم ورودی" جدید منتقل خواهد شد، بنابراین در یک پروژه جدید از بسته سیستم ورودی استفاده کنید.

این بخش توضیح می دهد که چگونه ان را تنظیم کنید.

نصب پکیج های سیستم ورودی

از Unity Editor 2020.3.25f1، بسته های سیستم ورودی به عنوان بسته هایی که در ابتدا نصب نشده اند مدیریت می شوند. برای نصب بسته:

پس از ایجاد پروژه خود و راه اندازی ویرایشگر Unity، Window > Package Manager را از منو انتخاب کنید.

هنگامی که صفحه مدیریت بسته ظاهر می شود، "Unity Registry" را از بسته انتخاب کنید.

اگر در سمت چپ به پایین لیست بروید، "سیستم ورودی" وجود دارد، بنابراین ان را انتخاب کنید و روی دکمه "نصب" در پایین سمت راست کلیک کنید.

هنگامی که نصب می شود، به عنوان نصب شده نمایش داده می شود، بنابراین گفتگو را ببندید.

اگر گفتگوی زیر پس از نصب بسته نمایش داده شد، روی دکمه "بله" کلیک کنید تا به طور خودکار "فعال کردن بسته سیستم ورودی" بعدی را پیکربندی کنید. در این مورد، ویرایشگر وحدت دوباره راه اندازی خواهد شد.

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.

فعال کردن بسته سیستم ورودی

از انجا که من فقط بسته را نصب کردم، در حال حاضر یک مدیر ورودی قدیمی فعال دارم. این را به بسته سیستم ورودی تغییر دهید.

گزینه Edit > Project Settings را انتخاب کنید.

هنگامی که گفتگوی تنظیمات پروژه باز می شود، بازیکن را از منوی سمت چپ انتخاب کنید.

در زبانه زیر، PC، Mac را انتخاب کنید. برگه تنظیمات را انتخاب کنید و تنظیمات بیشتر را در گروه در پایین گسترش دهید.

اگر تا حدودی به پایین بروید، موردی به نام "پردازش ورودی در حال استفاده" را در دسته "تنظیمات" پیدا خواهید کرد، جایی که می توانید "بسته سیستم ورودی (جدید)" را انتخاب کنید. شما می توانید هر دو را در حال حاضر فعال کنید، اما گیج کننده است، بنابراین در مورد یک پروژه جدید، بهتر است فقط از بسته سیستم ورودی استفاده کنید.

پس از ایجاد تغییرات، گفتگوی زیر ظاهر خواهد شد، بنابراین روی "درخواست" کلیک کنید تا ویرایشگر وحدت را دوباره راه اندازی کنید.

همینه، تمومه!

درباره مشکل استفاده از "UnityEngine.InputSystem" فضای نام در ورودی کد و در نتیجه خطا

من در حال حاضر کد را وارد نکرده ام، بنابراین اشتباه نخواهد بود، ممکن است خطایی دریافت کنید که فضای نام هنگام تلاش برای استفاده از ان هنگام UnityEngine.InputSystem وارد کردن کد (به عنوان مثال Visual Studio) وجود ندارد.

به عنوان مثال، اگر قبل از نصب "بسته سیستم ورودی" یک اسکریپت ایجاد کنید.

این به این دلیل است که پروژه UnityEngine.InputSystem هیچ اشاره ای به ان ندارد. برای حل این موضوع، کارهای زیر را انجام دهید:

Edit > Preferences را از منو انتخاب کنید.

ابزارهای خارجی را از منوی سمت چپ انتخاب کنید و روی دکمه Regenerate project files کلیک کنید.

با انجام این کار، Visual Studio UnityEngine.InputSystem به مرجع اضافه می کند.

همچنین کد بدون خطا است.

تغییر پذیرش ورودی کاربر در UI به یک بسته سیستم ورودی

این فیلد در صورتی که از Ui Unity مانند فیلدهای ورودی یا کشویی استفاده نکنید، مرتبط نیست و باید نادیده گرفته شود.

هنگامی که یک فیلد ورودی، کشویی یا غیره را در یک منظره قرار می دهید، یک بوم به طور خودکار ایجاد می شود و شی UI در انجا قرار می گیرد. در همان زمان، یک شی به نام "EventSystem" ایجاد می شود. این یک شی است که مدیریت می کند چه اتفاقی می افتد زمانی که برخی از ورودی ها در UI انجام می شود.

این EventSystem در ابتدا با یک مدیر ورودی قدیمی تر اجرا می شود. اگر فقط بسته سیستم ورودی فعال باشد، UI همانطور که هست کار نخواهد کرد، بنابراین شما باید بسته سیستم ورودی را تغییر دهید.

برای ایجاد تغییرات، ابتدا EventSystem را انتخاب کنید.

سپس یک هشدار در "ماژول ورودی مستقل" در بازرس نمایش داده می شود.

روی دکمه Replace with InputSystemUIInputModule کلیک کنید تا ماژول ورودی مستقل با ماژول ورودی UI سیستم ورودی جایگزین شود.

UI در بازی شما اکنون باید ورودی را به درستی بپذیرد.