نوشتن یونیکد در یونیتی_تکنیک فارسی نویسی در یونیتی_تایپ خودکار متن فارسی در یونیتی 5
gameover.blog.ir
تکنیک یک : یونیکد
🔶🔶🔶🔶تایپ فارسی در یونیتی/فارسی نویسی در یونیتی:(آموزش:سجاد)
خوب اینم به خاطر سوال یکی از دوستان اشاره می کنم خودتون برید پی ش:
1)این سایت برای پیدا کردن کد کاراکترهای فارسی و انگلیسی و غیره به کارتون میاد :
https://unicode-table.com/en/#arabic
2) این کد برای تبدیل کد هگزا دسیمال به کاراکتر مورد نظر هست(کدش به زبان سیشارپ هست و در یونیتی ازش استفاده می کنیم)
char upArrow = '\u25B2'; Debug.Log(upArrow.ToString());
سایت رو می بینید؟ سمت چپش هر کاراکتر کد هگز داره
مثلا 0620 میشه "ی" فارسی
با بک اسلش یو،اومده می گه می خوام یونیکد تایپ کنی برام
بعدش کد اسکی می ده که در مبنای شانزده یا هگزا دسیمال هست
25B2
برد یم دسیمال دهدهی
decimal=مبنای ده
اگه alt نگه داری 9650 بزنی اون کاراکتر تایپ میشه
اگه هم توی یونیتی بخوای باید همین 9650 رو تبدیل به هگزا دسیمال کنی بعدش بدی به تابع ToString
تبدیل کنه به رشته
با \u
char upArrow = '\u25B2';
Debug.Log(upArrow.ToString());
بلی
باید برید تو سایت https://unicode-table.com/en/#arabic
کد تمام حروف رو در بیارید
از a تا z
از الف تا ی
و الی آخر
و کد هگزا دسیمالشونو توی ارایه کپی کنی
توی یونیتی
بعدش از هر کدوم خواستی استفاده کنی
کلمه دلخواه رو هم می تونی بنویسی
یا رشته دلخواه
—
اها تازه فهمیدم😃
=====
تکنیک دو:
با استفاده از یک فارسی ساز می تونید متن فارسی رو به یونیتی انتقال داده و از فونت مجازش توی یونیتی استفاده کنید.
به عنوان مثال فونت F_unwan.ttf (فونت هایی که اولشون F داره) برای فارسی
ساز Leo moon کار می کنه که می تونید این فونت رو بکشید توی project و سپس
یک ui canvas Text ایجاد کرده و فونت رو بکشید روی پارامتر Font در
inspector.
سپس متن تایپ شده در Leomoon رو کپی کنید توی فیلد Text در inspector .
کل کاراکترهای فارسی رو با Leomoon کپی بگیرید
ببر توی یک آرایه در یونتی ذخیر کنید
برای اینکه متن فارسی با حروف درست وارد بشه و حروف جمله به ترتیب از راست ترین حرف وارد بشه و سپس با تایپ به سمت راست بره ابتدا خصوصیت رو در inspector روی چپ چین بذارید سپس جمله ی فارسی رو در متغیری از نوع رشته ای ذخیره کنید مثال myString.
سپس داریم:
IEnumerator PlayText() { for (int i=myString.Length-1;i>0i--) { TTX.text = myString[i] + TTX.text ; yield return new WaitForSeconds (0.125f); } }
سلام
به جای این راه دورو دراز چرا RTL Text Mesh Pro رو اموزش نمیدی برادر خوب من :)