2017-ci ilin Fevral ayında Unity ödənişli məhsul olan “Text Mesh Pro”-nu (qısaca TMP) alaraq “Asset Store”-dakı pulsuz əlavələr siyahısına əlavə etdi*. Həmin vaxt TMP biz daxil bir çox developerin arzuladıqları siyahısında idi (wish list). Onu əldə edib istifadə etməyə başladıqdan sonra da nə qədər şanslı olduğumuza əmin olduq.

Asset Store

Unity AssetStore
Yeni dizaynıyla Unity AssetStore

Yəqin ki bir çoxlarımızın “Unity Asset Store”-dan xəbərimiz var. Xəbərsiz olanlar üçün deyim ki, burada oyun/tətbiq istehsalında istifadə edəcəyiniz bir çox elementi (modellər, animasiyalar, hazır şablonlar və s.) uyğun qiymətə alaraq, istehsalat vaxtına və büdcəyə qənaət etmək mümkündür. Bunu ərinmə səbəbilə demirəm, sadəcə Asset Store-dakı bir çox elementi öz komandanızla hazırlamağınız daha bahaya başa gələcək və bu cür məsələlərə ayıracağınız vaxtı əsl oyunun istehsalatına xərcləyərək daha uğurlu nəticələr əldə etməyiniz mümkündür. Təbii ki, “3 dənə element alıb birləşdirib Google Play-ə qoyaram” deyə düşünürsünüzsə və bunun uğurlu olacağına inanırsınızsa, yanılırsınız. Oyun istehsalatı yaradıcıl və texniki prosesdir.

“Asset Store”-da bir az gəzinib əlavələrə baxsanız, çox geniş qiymət və keyfiyyət spektrinə şahid olacaqsınız. Nə olursa olsun, qətiyyən məhsul haqqındakı şərhlərəhansı Unity versiyalarını dəstəklədiyinə baxmadan pul xərcləməyin. “Asset Store”-da PlayMaker, TextMeshPro, DOTween/LeanTween və s. kimi istehsalatın fərqli mərhələlərini asanlaşdıran/sürətləndirən məshullar olduğu kimi, sadəcə “pul tələsi” olan bir çox keyfiyyətsiz modul da az deyil.

Text Mesh Pro (TMP) nədir?

Text Mesh Pro müstəqil developer (forumda Stephan_B adıyla tanınan istifadəçi) tərəfindən hazırlanmış əlavədir. Bu əlavə Unity-nin standart UI TextText Mesh komponentlərinə alternativdir və bu ikisindən fərqli olaraq istifadəçiyə çox daha geniş seçim spektri verilir. Bunun nəticəsində TMP istifadə edilərək hazırlanan mətn parçaları vizual olaraq çox üstün olur.

Təbii ki, bir çox developer üçün modulların vizual potensialı ilə yanaşı həm də oyun ərzindəki performansı** da önəm kəsb edir. Hər bir simvolun göstərilməsi üçün (eynilə Unity-nin standart elementlərində olduğu kimi) 2 üçbucaq istifadə edildiyi üçün, bu vizual üstünlüklər oyun üçün əlavə resurs bahasına baş vermir. Bununla əlaqədar digər developerlər bir çox testlər ediblər və göründüyü qədərilə hansı komponentin daha “yüngül” işlədiyini demək bir o qədər asan olmasa da, mətnin göstərilməsini təyin edən bir çox parametr əlavə hesablamalar tələb edir və nəticə etibarilə modulun və hazırladığınız oyunun performansına bir-başa təsir edir (qaynağa əsasən, ən çox auto-size parametrinə diqqət etmək lazımdır).

Azərbaycan dilindəki mətn

Əksər developerlər üçün (məlum səbəblərə) yerli bazar maraqlı olmasa da, dilimizdəki mətnləri də TextMesh Pro vasitəsilə göstərmək mümkündür. Biz bunu “Open Data Stats” tətbiqini hazırlayarkən etməli olduq. Bunun üçün lazım olanlar:

  1. Azərbaycan dilini dəstəkləyən font: Biz fontlar.az vebsaytını istifadə etdik bu məqsədlə.
  2. İstifadə ediləcək simvolların siyahısı***: Bizim işlətdiyimiz siyahı belədir: AaBbCcÇçDdEeƏəFfGgĞğHhXxIıİiJjKkQqLlMmNnOoÖöPpRrSsŞşTtUuÜüVvYyZz,.?!():;'”

Bunlara qərar verdikdən sonra TextMesh Pro-da istifadə edəcəyimiz font asset hazırlamağımız lazımdır və bunun üçün “Font Asset Creator” istifadə edirik.

Font Asset Creator
“Font Asset Creator” tətbiqini aktivləşdirmək üçün: Window > TextMeshPro > Font Asset Creator

Font Source olaraq yüklədiyiniz fontu seçdikdən sonra, Character Set olaraq Custom Characters seçirik, çünki dilimizdəki müəyyən hərflər nə ASCII, nə də ki Extended ASCII siyahısına daxil deyil. Custom Characters List sahəsinə planlanan hərfləri daxil edib, Generate Font Atlas düyməsinə basmaq lazımdır. Bu zaman bizə lazım olan atlas hazırlanacaq (sol-aşağı hissədə gördüyünüz kimi, bu fontda bizə lazım olan simvollardan 1-i mövcud deyilmiş). Save TextMeshPro Font Asset düyməsinə basmağı unutmayın, çünki ancaq bu vaxt hazırlanmış atlas istifadə üçün qeyd olunur.

Font Asset Creator
“Font Asset Creator” tətbiqi və nümunə hərf atlası

Bu hazırlanmış asset-i Text Mesh Pro əlavə edilmiş hər-hansı obyektin Font Asset-i olaraq seçərək istifadə edə bilərik.

TextMesh Pro
Hazırladığımız və yaxında istifadəyə veriləcək “Open Data Stats” mobil tətbiqi üçün hazırlanan bir səhnədə TextMesh Pro

Təbii ki, eyni metodu hər-hansı dil və ya simvol dəsti üçün istifadə etmək olar. Əgər bu mövzuyla əlaqədar sual, şərh və ya məsləhətləriniz varsa, bizimlə paylaşmağınızı xahiş edirəm.

Qeydlər

* Pulsuz versiyada Text Mesh Pro-nun qaynaq kodu olmasa da, bu gündəlik istifadələrə heç bir şəkildə təsir etmir.

** Performance sözünün dilimizdə qarşılığını tapa bilmədim. 🙂

*** Praktikadan gördüyümüz və fontlar.az-da da deyildiyi kimi: Bizim “ə” heç bir Latin-Extended (A, B, C, D) siyahısında yox imiş.

Author

I am founder of DynamicBox Studio, mobile oriented game development studio located in Baku, Azerbaijan. Having spent most of my professional life as Project Engineer, I have utmost interest for data science and game development.