Tutorial privind localizarea meniului pe unity3d

Mai devreme sau mai târziu, chiar și un mic proiect de succes pe care doriți să-l arătați nu numai prietenilor dvs., ci și unui public mai larg din alte țări. Pentru a tot mai mulți oameni sunt îmbibate cu ideea ta „genial“, este necesar să se transfere tot textul de pe ecran și semnături pe limba clară a locuitorilor săi „native“.

Acest articol vă va arăta cum puteți scrie destul de repede managerul de localizare, paralel greu pentru a face din meniul principal și în meniul de selectare a limbii unității. La noi, o gamă de limbi va fi compusă din 3: engleză, germană și, desigur, rusă.

Acesta este modul în care meniul principal localizat în 3 limbi va arăta în versiunea finală:

Tutorial privind localizarea meniului pe unity3d

Pentru dezvoltare vom folosi Unity3D și C #.

Pregătiri de bază

Mai întâi, creați un proiect în unitate, creați o scenă constând în: o cameră; un element "Meniu" gol de tipul "Gameobject"; texturi de tipul "GUITexture" cu o imagine interesantă atașată care va fi utilizată ca fundal; textura goală cu logo-ul "unitate". Apăsăm pe "Redare".

Tutorial privind localizarea meniului pe unity3d

Creați un fișier de localizare

Există mai multe opțiuni pentru organizarea și stocarea datelor de localizare:

stocare monolingve - date (text, dialoguri, numele fișierelor audio, etc.) vor fi conținute în fiecare fișier, de exemplu, în Russian.xml Rusă, iar unele chineză - respectiv Chinese.xml

Stocare multilingvă - toate datele sunt stocate într-un singur fișier, numit "toate într-unul". Cineva ar putea spune, că este incomod pentru a stoca într-un singur fișier, dar pentru proiecte cu o cantitate mică de date localizate, aceasta este „ea“.

A doua opțiune este o soluție echilibrată la mica problema noastră, dar în primul rând mai convenabil din punct de vedere al organizării proiectului cu localizarea numărului mare de limbi.

Pentru a stoca date text vom folosi tipul cel mai potrivit pentru aceasta - XML.
Formatul datelor din fișierul xml este următorul:

In interiorul «meta» element poate să conțină datele generale ale proiectului, de exemplu, numele, versiunea, date pentru verificarea originalitatea și integritatea fișierului.
Elementul "id de grup" este folosit pentru numele meniului principal, poate fi folosit și pentru numele diferitelor meniuri secundare, numele locațiilor etc.
Elementul "string id" conține aceleași câmpuri de date care trebuie localizate.

Manager de localizare

Acum mergeți direct la crearea de scripturi.

Vom crea o clasă și un script "LangManager.cs", acesta va fi scriptul principal al managerului de localizare.

În primul rând. tipul de date. Noi, așa cum am menționat deja, vom avea 3 limbi:

În consecință, variabila și proprietatea pentru stocarea limbii curente, implicit este engleza:

Al doilea. aceasta este o funcție de încărcare a fișierului:

"LanguagesFileName" este o variabilă de tip "string", calea spre fișierul de localizare, de exemplu, LimbiFileName = @ "/ Settings / Languages.xml"

În al treilea rând. funcție de obținerea datelor localizate, în funcție de tipul limbii curente. (Unii pot spune că nu este foarte eficient și că dicționarele ar trebui folosite, dar, așa cum se spune, "nimănui nu-i pasă").

În absența datelor despre câmpul solicitat, va fi afișată inscripția "nu a fost tradusă".
Desigur, toată lumea își poate adăuga propriile "chifle" de marcă. Deci, managerul de localizare de bază este obținut.

Crearea și localizarea meniurilor

Primul lucru pe care îl facem este să creezi un script și să îl atașezi la meniul Obiect de joc.

În scriptul la pornire, determinăm dacă fișierul de localizare este încărcat, dacă nu deja, apoi îl încărcați.

Toate elementele de meniu sunt redate în cadrul funcției OnGUI.

"ScreenX" și "ScreenY" sunt coordonatele colțului din stânga sus al zonei în care va începe meniul;
"AreaWidth" și "areaHeight" - dimensiunea zonei, lățimea și înălțimea;
"CurrentPage" este o variabilă de tip propriu "Page", folosit pentru a determina "ce meniu suntem".

Direct funcția de a crea butoanele în meniul principal. În interior, puteți adăuga propriile dispozitive de manipulare a clicurilor, cum ar fi încărcarea unui nivel sau un nou meniu.

Pentru fiecare limbă va avea propriul font, deci declarați variabilele corespunzătoare:

Atribuiți fiecare variabilă fontului dorit:

Selectarea limbii:

Salvați, dați clic pe "Redați".

Am un astfel de meniu principal și un meniu de selecție a limbii (versiunea în limba rusă):

Tutorial privind localizarea meniului pe unity3d

În final, obținem o imagine atractivă, care, dacă se dorește, poate fi tipărită și atârnată pe perete:

Tutorial privind localizarea meniului pe unity3d

alternative

În Unity Asset Store sunt destul de potrivite pentru utilizare (sub forma unei extensii pentru Unity3D). Și chiar și cu o secțiune specială a Editorului

Dacă, pentru a cumpăra oficial, puteți să aruncați o privire la:

concluzie

Dorință, puțină răbdare și totul este gata!

Tutorial privind localizarea meniului pe unity3d

UPD: Defectele sunt fixe, se iau în considerare dorințele habitaclilor

1) a șters codul hindus;
2) au adăugat noi fonturi, inclusiv chirilic.

Toți participanții la discuție, precum și HomoLuden. Gafs. - Vă mulțumim pentru comentariile și sugestiile dvs. bine motivate!