تبلیغات

ذخیره تنظیمات بازی با PlayerPrefs در یونیتی

ذخیره تنظیمات بازی با PlayerPrefs در یونیتی

ذخیره تنظیمات بازی با PlayerPrefs در یونیتی


طبیعتا در 99.99 درصد بازی‌های منتشر شده، یک سری تنظیماتی برای کاربر وجود دارند و واضح است که بعد از تغییر تنظیمات، بایستی مقادیر آن‌ها در جایی نگه داشته شود تا هنگام اجرای دوباره‌ی بازی، مقادیر ذخیره شده، بارگذاری یا Load شوند.

حالا در این آموزش می‌خواهیم به کمک کلاس PlayerPrefs، این کار را انجام دهیم؛ یعنی مقادیری را ذخیره کرده و سپس در هرجایی که خواستیم آن‌ها را بخوانیم. و همچنین ما با استفاده از این کلاس، می‌توانیم تنها مقادیر String، Int, Float را ذخیره کنیم.

نکات مهم

  • نیازی به ساخت هیچ نمونه‌ای از این کلاس نیست و متدهای این کلاس به صورت static تعریف شده‌اند.
  • این کلاس در اندروید، همان قابلیت Preferences می‌باشد؛ پس طبق آن، مقدارها را ذخیره می‌کند.
  • این کلاس در ویندوز، مقدارها را در رجیستری ثبت می‌‌کند؛ که در ادامه آدرس آن را خواهیم گفت.

قرار دادن یک مقدار جدید در Pref

  • متد SetFloat
  • متد SetInt
  • متد SetString

هرکدام از متدهای گفته شده، در ورودی اولشان یک رشته دریافت می‌کنند و این رشته نقش کلید برای آن مقدار ذخیره شده را دارد. و همچنین در ورودی دوم متدها نیز مقدار کلید با توجه به String، Int، Float بودن آن، دریافت می‌شود.

ذخیره تغییرات

تا زمانی که متد Save قراخوانی نشود، هیچ‌کدام از تغییراتی که توسط متدهای بالا انجام شده‌اند، ذخیره نخواهند شد. پس برای ذخیره کردن تغییرات از متد Save استفاده می‌کنیم.

خواندن مقدارها

  • متد GetFloat
  • متد GetInt
  • متد GetString

این متدها نیز مقدارهای ذخیره شده را به ما برمی‌گردانند.
هرکدام از این متدها دو نوع اند (یعنی Overload شده اند)

  • نوع اول: یک ورودی می‌گیرد که همان کلید می‌باشد.
  • نوع دوم: دو ورودی می‌گیرد که اولی همان کلید بوده و دومی مقدار پیش‌فرض می‌باشد تا زمانی که آن کلید وجود نداشت، آن مقدار برگردانده شود.

بررسی وجود داشتن یک کلید

متد HasKey به شما می‌گوید که آیا مقداری با فلان کلید وجود دارد یا نه؛ منظور این است که آیا چنین چیزی ذخیره شده است یا خیر. و همچنین این متد در ورودی خود از ما یک رشته به عنوان کلید دریافت می‌کند و در خروجی به ما true یا false برمی‌گرداند.

حذف یک مقدار یا حذف کردن مقادیر

برای حذف مقادیر ذخیره شده دو متد وجود دارد:

  • متد DeleteKey
    تنها یک مقدار را حذف می‌کند؛ به این صورت که در ورودی خود از ما یک رشته به عنوان کلید دریافت می‌کند.
  • متد DeleteAll
  • تمامی چیزهایی که ذخیره شده اند را حذف می‌کند؛ تمامی کلیدها و مقدارهایشان.
توجه داشته باشید که حذف متد نیز جزء تغییرات می‌باشد و بعد از آن باید متد Save فراخوانی شود.

محل ذخیره در رجیستری ویندوز

یکی از دو مسیر زیر، محل ذخیره‌ی تنظیمات با استفاده از PlayerPrefs در رجیستری ویندوز می‌باشند؛ البته به این بستگی دارد که پروژه را در خود یونیتی اجرا کرده باشید یا Build کرده باشید.

HKEY_CURRENT_USER/Software/AppDataLow/CompanyName/ProjectName
HKEY_CURRENT_USER/Software/Unity/UnityEditor/CompanyName/ProjectName

البته می‌توانید از این قابلیت ذخیره سازی، برای چیزهای دیگری به جز تنظیمات هم استفاده کنید؛ ولی به دلیل امنیت زیادی که ندارد و کاربر می‌تواند به راحتی آن را ویرایش کند (البته کاربران نسبتا حرفه‌ای)، پس بهتر است فقط برای تنظیمات و دیگر چیزهای ساده استفاده شود.
تبلیغات
0
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه