خوانندهٔ سیو یونیتی آنلاین (PlayerPrefs و YAML)
یونیتی مقدارهای سادهٔ بازی را در PlayerPrefs نگه میدارد و بقیهٔ وضعیت را در فایلهای متنی YAML. روی ویندوز PlayerPrefs زیر کلید شرکت و بازی در رجیستری مینشیند؛ با regedit آن شاخه را به فایل .reg صادر میکنید و همینجا باز میشود. روی اندروید همان مقدارها در پوشهٔ shared_prefs و فایل XML همنام پکیج هستند و با یک فایل XML روبرویید. ابزار نوع هر مقدار را از خود فایل میخواند، نه از حدس: dword رجیستری عدد صحیح است و مقدار علامتدارش هم نشان داده میشود، چهار بایت hex یک ممیز ۳۲ بیتی little-endian است، hex(b) عدد ۶۴ بیتی و hex(2) متن UTF-16 است؛ هر چیز دیگری بهصورت بایت میماند تا اشتباه خوانده نشود. فایلهای YAML یونیتی (.asset، .prefab، .unity و .meta) هم سند به سند باز میشوند: کلاس، fileID، فیلدها، بردارها و ارجاعهای {fileID: …} را میبینید. این ابزار فقط میخواند؛ چیزی ویرایش یا دوباره کدگذاری نمیشود و خروجی یک فایل JSON است. هیچ فایلی آپلود نمیشود و همهچیز در مرورگر اجرا میشود.
این ابزار مستقیماً در مرورگر شما اجرا میشود. هیچ دادهای به سرور ارسال نمیشود.
نحوه استفاده
- 1
فایل رجیستری .reg، فایل shared_prefs اندروید یا یک فایل YAML یونیتی را در کادر رها کنید؛ اگر فایل ندارید، یکی از سه نمونهٔ آماده را باز کنید.
- 2
قالب تشخیصدادهشده و جدول کلیدها را ببینید؛ با جستوجو مستقیم سراغ یک کلید یا مقدار بروید و در فایل YAML سندها را باز کنید.
- 3
با دکمهٔ «دانلود JSON» همان داده را برای مقایسه یا پشتیبانگیری بگیرید؛ فایل اصلی دستنخورده میماند.
پرسشهای پرتکرار
PlayerPrefs ویندوز را از کجا پیدا کنم؟
در regedit به مسیر HKEY_CURRENT_USER\Software بروید و شاخهٔ شرکت و بعد بازی را پیدا کنید. روی همان شاخه راستکلیک کنید و Export بزنید؛ فایل .reg ساخته میشود و همینجا باز میشود. اگر بازی از PlayerPrefs.SetInt و SetFloat استفاده کرده باشد، نوعها همان dword و چهار بایت hex هستند.
چرا مقدار ممیز کمی عجیب است؟
یونیتی ممیز را ۳۲ بیتی ذخیره میکند و یک عدد مثل ۰٫۸ در نمایش ۳۲ بیتی دقیقاً همان ۰٫۸ نیست. ابزار مقدار را با هفت رقم معنادار نشان میدهد تا همان چیزی را ببینید که بازی میبیند، و بایتهای خام را هم کنارش میگذارد.
آیا مقدارها را میشود ویرایش کرد؟
در این نسخه نه. خواندن امنتر است: فایل دستنخورده میماند و خروجی JSON برای مقایسه، مستندسازی یا پشتیبانگیری است. ویرایش PlayerPrefs باید در جای خودش و با ابزار همان پلتفرم انجام شود.
چه فایلهای YAML یونیتی پشتیبانی میشوند؟
فایلهای .asset، .prefab، .unity و .meta که با هدر %YAML یا با نشانگر سند !u! شروع میشوند. پارسر فقط زیرمجموعهای را میخواند که خود یونیتی مینویسد: نقشهها، فهرستها، براکتهای {} و [] و مقدارهای ساده. هر خطی که نفهمد نادیده میگیرد و هرگز حدس نمیزند؛ عددهای بزرگتر از ۲ به توان ۵۳ هم بهصورت متن دقیق میمانند تا fileID خراب نشود.