1. Szukamy w plikach gry naszej czcionki. Często gry używają zamiast pliku czcionki plików Atlas SDF (w formacie .png) i MonoBehaviour. Pewnie siedzią w plikach .asset lub .bundle lub innych bez formatu. Jak szybko zweryfikować gdzie są? Mój skrypt do skanowania w pythonie:
https://pastebin.com/7a7tkDpD
Dodatkowy skrypt z opcją eksportu plików SDF aby zobaczyć jak te czcionki wyglądają w celu weryfikacji o którą nam chodzi:
https://pastebin.com/dkNyKZrU
Jeżeli pliku czcionki tutaj nie znajdziemy a tylko pliki MonoBehaviour i SDF Atlas to będziemy musieli znaleźć ją w internecie lub użyć innej.
2. Teraz gdy już wiemy gdzie te pliki są możemy je wyciągnąć programem https://github.com/nesrak1/UABEA.
Wybieramy nasz plik i klikamy info.
- plik czcionki wyciągamy opcją plugins -> exportCzasami możemy nie znaleźć tych plików bo plik asset może posiadać więcej sharedAsset do wyboru i nie są one w pierszym który domyślnie jest wybrany. W celu łatwego odnalezienia gdzie są nasz pliki polecam załadować plik assetu do https://github.com/nesrak1/UABEANext, który posiada opcję załadowania wszystkiego i wyszukiwania (niestety nie działają na ten moment w nim dobrze pluginy).
- plik sdf atlas wyciągamy opcją plugins -> export
- plik MonoBehaviour wyciągamy opcją Export Dump i zapisujemy do pliku .txt
3. Tworzymy nowy projekt unity i dodajemy nasz plik czcionki w celu wygenerowania nowego pliku SDF. Jeżeli czcionka nie ma polskich znaków musimy je dodać innymi narzędziami lub użyć innej czcionki.
Z górnej belki wybieramy Window -> TextMeshPro
Wybieramy naszą czcionkę.
Ustawiamy odpowiedni padding np. 11 (najlepiej sprawdzić w wyciągniętym pliku MonoBehaviour - tam można też podejrzeć inne opcje jak rozdzielczość).
Ustawiamy zakres znaków zawierający polskie litery (tu też w pliku MonoBehaviour można zobaczyć jakie znaki oryginalnie były używane i trzeba dodać do nich polskie znaki). Ja używam 0020-017F.
Klikamy Generate.
Zapisujemy.
Wychodzimy z okienka TextMeshPro.
Do naszej sceny w Unity dodajemy obiekt Text i ustawiamy mu czcionkę którą właśnie wygenerowaliśmy (w oknie Inspector->Font Asset).
Z górnej belki wybieramy File -> Build Settings -> Build i wybieramy gdzie zostanie wyeksportowany nasz projekt.
Wychodzimy z Unity.
4. W naszym zbudowanym projekcie znajdujemy plik sharedassets0.assets i z niego wyciągamy pliki SDF i MonoBehaviour jak w punkcie drugim.
5. W UABEA w oryginalnym pliku klikamy na plik oryginalny SDF Atlas -> Plugins -> Edit -> i wczytujemy nowy plik SDF.
6. Nowy plik MonoBehaviour Trzeba połączyć ze starym. Można ręcznie lub użyć mojego skryptu:
https://pastebin.com/hksWxiAq
7. W UABEA klikamy na plik MonoBehaviour i importujemy nowy połączony plik.
8. Zapisujemy.
FAQ:
[Q] Polskie znaki działają ale nie wyświetlają się znaki takie jak apostrof
[A] Błąd był na etapie tłumaczenia. Zostały użyte złe kodowania. Skrypt naprawiający: https://pastebin.com/kz5kBLKR.
