فول کده
ورود عضویت
تبلیغات

ذخیره تنظیمات بازی با 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
کانال تلگرام فول کده

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

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

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

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

متولد آبان 74. برنامه نویسی اندروید، ویندوز، وب و ...

پاسخ دهید

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

قوانین نظرات

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

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