آموزش پشتیبانی از زبان فارسی در یونیتی

یکی از مسائل مهم در بازی سازی با یونیتی که باید توجه داشته باشیم، نمایش صحیح زبان فارسی هست.

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

روش های پشتیبانی از زبان فارسی در یونیتی

دو حالت برای فارسی نوشتن توی یونیتی وجود داره:

۱- توی صحنه متن رو داخل text بنویسید

۲- توی اسکریپت متن رو به text نسبت بدید

توی هر دو حالت اگر فارسی بنویسید، یونیتی حروف فارسی رو به صورت جدا جدا نمایش میده.

راه اول برای این مشکل اینه که شما نوشته خودتون رو ابتدا با استفاده از ابزارهای فارسی‌ساز درست کنید و بعد توی صحنه یا اسکریپت بذارید.

برای این کار میتونید از ابزار زیر استفاده کنید.

فارسی ساز آنلاین (کلیک کنید)

راه دوم زمانی استفاده میشه که بخواین توی اسکریپت متن فارسی رو بنویسید و خودتون رو درگیر فارسی‌سازی متن نکنید.

مثلا وقتی که میخواین یک پیام رو از توی اسکریپت به کاربر نمایش بدید. برای این کار از یک کلاس استفاده میکنیم که به شکل خودکار این عمل رو انجام بده.

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

دریافت کلاس فارسی

برای استفاده، از تابع faConvert استفاده کنید، به شکل زیر:

txtMessage.text = Fa.faConvert("نوشته شما");

من عاشق برنامه‌نویسی، یاد گرفتن و آموزش دادن هستم. انجام کارای جدید توی برنامه‌نویسی رو بیشتر به چشم سرگرمی میبینم تا کار.

حجت ریحانه

من عاشق برنامه‌نویسی، یاد گرفتن و آموزش دادن هستم. انجام کارای جدید توی برنامه‌نویسی رو بیشتر به چشم سرگرمی میبینم تا کار.

12 ديدگاه بر “آموزش پشتیبانی از زبان فارسی در یونیتی

  1. سلام و تشگر
    ببخشید من از این اسگریپت استفاده کردم. ولی یه مشکلی هست
    داخل اسکریپتی گه نوشتم بعد از پلی در ایدیتور کدها ناقص اجرا میشه ولی وقتی خروجی میگیرم بازی بالا میاد ولی کدها اجرا نمیشوند چرا؟؟؟ اسگریپت fa رو هم در شاخه asset گذاشتم.
    هیچ خطای هم نمیده.
    یونتی ۴.۶ هم هست
    لطفا کمک کنید
    تشکر

    1. سلام و وقت بخیر

      مشکلتون خیلی مبهم هست. یکم بیشتر توضیح بدید. ناقص اجرا شدن کدهاتون به چه شکل هست؟
      فقط کدهای مربوط به فارسی نویس این مشکل رو دارن یا بعضی کدهای دیگه هم اجرا نمیشه؟

  2. ببخشید که دیر جواب دادم
    مشکل از فارسی ساز نبود مشکل از یونتی بود
    من اینطور فهمیدم که اول باید jdk و .net ها رو نصب کنی بعد یونتی رو نصب کنیم
    اما من یونتی رو اول نصب کردم به خاطر همین مشکل داشت
    درسته فارسی ساز به jdk نیاز نداره اما من مبخواستم پرداخت درون برنامه ای رو پیاده کنم و با اسنفاده از فارسی ساز خطاها رو فارسی نشون بدم
    بازم معذرت میخوام و تشکر به خاطر این پلاگینی که نوشتید 🙂

  3. بسیار عالی , فقط یه سوال

    این اسکریپت مبدل شما با همه فونت ها سازگاره ؟
    یا کلا فونت استفاده نکنیم و فقط از دیفالت یونیتی استفاده کنیم ؟

    یه سوال دیگه متد مبدل شما تو تابع اپدیت نوشته شده ؟ یعنی دائما چک میشه یا پابلیکه و فقط در مواقع نیاز ؟
    رو گوشیای ضعیف هم جواب میده ؟
    چون این روش بنظر بهتر و راحتر میاد

    من برای نوشتن و نمایش متن فارسی مشکلی ندارم , اما وقتی بخوای متن رو از کاربر بگیری یکم داستان داره !!

    یه جورایی میشه گفت که من از روش اول استفاده میکنم. , یعنی یه فونت که خودم ازش خوشم بیاد رو رو سیستم نصب میکنم تا لیومون اون رو تو لیست فونت ها بیاره , بعد تبدیلو کپی و… .

  4. سلام.من وقتی از متن های طولانی استفاده میکنم ترتیب جملات به هم میخوره و جمله اول میره خط اخر و جمله اخر میاد خط اول.
    میشه بگید چطور این مشکلو حل کنم؟ممنون

  5. با تشکر از شما بابت این ابزار مفیدتون
    اینم اگر به متن اضافه کنید خیلی خوبه برا افرادی ک مشکل دارن باهاش:
    تو متن های طولانی تر ترتیب جملات تو خط ها بهم میخوره که برای ترتیب بندی درست شما باید روی ابجکتتون که کامپوننت Text داره کلیک کنید و توی کامپوننت Text باید مقدار line spacing رو منفی کنید مثلا اگر مقدارش ۱ هست بزارید -۱! این کار باعث میشه دوباره تکتس هاتون واررونه بشه و به حالت درست نمایش داده بشه! اینم یک ترفند عالی برای کسایی که مشکل دارن. البته باید اینم بگم که توی این حالت گزینه Base fit از کار میفته پس کسایی که به این گزینه نیاز دارند (متن هاشون داینامیک و متغییر هست) بهتره قبل از استفاده از این روش متن های بازیشون رو چک کنن که مشکلی نداشته باشه. در غیر این صورت اگه بخوان تو حالت نرمالش خط هاشون رو درست نشون بدن باید یک اسکریپت مجزا بنویسن و کل متنشون رو توی یک ارایه ذخیره و از نو وارونه کنن که کار هر کسی نیست.

  6. سلام
    خیلی ممنون، پلاگینتپن خیلی خوب کار میکنه
    من در بازی خودم ازش استفاده کردم و میخوام اسم سازنده این پلاگین رو توی سازندگان بنویسم
    آیا شما تنهایی این پلاگین رو نوشتی؟

پاسخ دهید

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