تبلیغات

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

ذخیره تنظیمات بازی با PlayerPrefs در یونیتی
هادی اکبرزاده
نوشته شده توسط هادی اکبرزاده

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

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

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

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

نیازی به ساخت هیچ نمونه ای از این کلاس نیست و متدهای این کلاس به صورت static تعریف شده اند.

قرار دادن یک مقدار جدید در 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
کانال تلگرام فول کده

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

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

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

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

آن‌گاه که هرچیزی را به یک چشم دیدیم، حقیقت برایمان نابود می‌شود! باید توجه کنیم که خدا به ما دو چشم داده است!
Telegram

پاسخ دهید

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

قوانین نظرات

  • تعریف سیستم نظرات: سیستم نظرات، محلی است تا شما دوستان عزیز بتوانید دیدگاه خود را نسبت به مطلب قرار گرفته بنویسید، نه چیز دیگری!
  • نظراتی که به بهبود پست کمک کنند، با ذکر نام ارسال کننده به پست اضافه خواهند شد.
  • برای ارسال نظر، نیازی به سلام و احوال‌پرسی نیست و این فقط به خاطر ساده‌تر و سریع تر شدن متن می‌باشد.
  • دیدگاهی که ارسال می‌کنید، حتما باید درباره‌ی پست قرار گرفته باشد؛ نظرات پست‌های دیگر را در جای خود بنویسید در غیر این‌صورت تایید یا پاسخ داده نخواهند شد.
  • سوالی که جواب آن در پست وجود داشته باشد، تایید یا پاسخ داده نخواهد شد.
  • برای پاسخ دادن به نظرات دیگران، از گزینه‌ی پاسخ کنار هر دیدگاه استفاده کرده و یک نظر جدید ارسال نفرمایید. همچنین برای ارسال نظر جدید از گزینه‌های مربوط به پاسخ استفاده نکنید.
  • دوستان عزیز واقعا نظر لطف شماست اما متن‌های کوتاهی مانند "مرسی"، "عالی بود" ممکن است تایید نشوند. این به خاطر شلوغ نشدن قسمت نظرات است.
  • بهتر است برای ارسال نظر در سایت ثبت نام کنید و سپس با اکانت خود وارد شده و نظرتان را ارسال کنید.
  • قوانین نظرات در طول زمان در این قسمت اضافه و تغییر داده می‌شوند و می‌توانید از این قسمت بررسی کنید.
  • این قوانین شامل پست های قدیمی نمی‌شود ولی نظرات پست های قدیمی نیز در صورت نیاز اصلاح خواهند شد.

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