Creșterea durerilor unității

Unitatea este o platformă uimitoare și continuă să crească. Ca mulți alți dezvoltatori de jocuri, am trecut la Unity ca platformă principală pentru dezvoltarea jocurilor. În timp ce Unity este unul dintre programele de dezvoltare a jocului, cu cele mai utile utilizări, am avut vreodată plăcerea de a folosi, nu este lipsită de dureri în creștere. Am lucrat la depășirea și documentarea acestor studii, iar în acest articol voi împărtăși experiența mea.

postări asemănatoare
  • Cum să învățați unitatea

Înțelegerea Inspectorului

Inspectorul unității este locul în care veți vedea toate informațiile despre obiectul selectat în vizualizarea scenă.


Dacă creați un cub și apoi îl selectați, inspectorul va afișa Transforma care va afișa X, y, și z proprietățile poziției, rotației și scării cubului menționat. Dacă aveți un inamic mai complex pe care l-ați creat, selectarea acestuia va afișa toate informațiile despre acel obiect, care ar putea include orice număr de componente pe care le-ați atașat acelui obiect.

postări asemănatoare
  • Unitate: acum gândiți la componente

Există o singură captură: pentru ca o proprietate să fie vizibilă în inspector, trebuie să fie făcută publică în orice script din care aparține proprietatea: dacă doriți să vedeți fireSpeed variabilă a unei componente atașată la obiectul dvs., atunci fireSpeed trebuie să fie declarat ca o variabilă publică.

Aici intră în joc puterea reală a inspectorului, iar aici trebuie învățat încă un truc. Orice proprietate care poate fi văzută în Inspector poate fi editată pentru acel obiect. Dacă scriptul dvs. stabilește o valoare implicită pentru o proprietate prin cod, este foarte important să știți acest lucru valoarea Inspectorului o va suprascrie. Acest lucru înseamnă că, dacă fireSpeed variabila a avut o valoare implicită de 4, și l-ați pus 8 în Inspector, atunci fireSpeed variabila pentru obiectul respectiv va rămâne ca 8, chiar dacă modificați valoarea 4 în scenariu și salvați-l.

(Rețineți că setarea variabilei la alt scop decât public, adică privat sau protejat, va reveni la valoarea scriptului și va ascunde valoarea de la inspector.)

Ultimul truc pe care trebuie să-l amintiți este că valorile editate în Inspector în timp ce se afișează în scenă când nu rulează jocul vor salva, în timp ce valorile modificate în Inspector în timpul jocului este care rulează în timpul ediției live (da, puteți modifica variabilele în timp ce testați!) va reveni la valorile lor odată ce ați terminat proiectul.

Aceste cateva puncte cheie nu sunt prea complexe, dar este foarte important sa le reamintiti, deoarece neconstientizarea tuturor acestor lucruri poate duce la o depanare foarte confuza.


prefabricate

Prefabs sunt unul dintre cele mai importante aspecte ale Unității, dar pot fi un pic confuz la început, deoarece există câteva ciudățenii minore pentru ele, care nu sunt destul de aparente la prima vedere.

Un prefabricat este în esență o definiție predefinită a unui obiect - un model, pentru toate intențiile și scopurile, la fel ca o clasă în PPE. Prefabs poate fi compus din orice număr de obiecte de joc, grafică, componente și așa mai departe. Acestea sunt cel mai bine utilizate atunci când doriți o mulțime de instanțe ale unui obiect, și poate doriți modificări ușoare ale acelui obiect specific.


Dacă aveți o grămadă de prefabricate în scenă și faceți o modificare a definiției prefabricatelor, toate instanțele acestui prefabricat vor fi actualizate. Alternativ, dacă actualizați o anumită instanță, apăsați aplica, toate instanțele prefabricatelor (precum și definiția principală a prefabricatelor) vor fi actualizate la configurația instanței respective. Dacă ați modificat variabilele Inspector sau alte proprietăți, într-o instanță a unui prefabricat, puteți apăsa Reveni pentru a reveni la acea instanță la aceeași configurație ca și definiția prefabricată.


Navigarea spațiului 3D al editorului

Unul dintre primele lucruri cu care mă luptam în Unitate, chiar și după ce am văzut o grămadă de videoclipuri tutorial, a fost cum să navighez în spațiul vizual 3D din editor. Am fost, desigur, un novicesc complet care sa se deplaseze in spatiul 3D fara a fi blocat la un personaj (cum ar fi atunci cand jucati un joc de prima sau a treia persoana), dar inca mi sa parut mișcare un pic ciudat si complicat.

Nu este deloc rău o dată ce vă obișnuiți cu asta, dar având o anumită direcție când am început prima oară ar fi fost grozavă, deci iată câteva comenzi utile pentru navigarea corectă a spațiului 3D al editorului:


  • Faceți clic dreapta pe Glisați: Uitați-vă liber spațiul 3D, fără să vă mișcați.
  • Faceți clic pe Obiect + F: Focalizați direct pe un obiect, mișcați camera chiar în fața acestuia.
  • Alt + clic stânga Trageți: Rotiți în jurul obiectului focalizat în prezent.
  • Alt + clic dreapta Trageți: Diferite mecanisme de zoom.
  • Derulați roata înainte / înapoi: Măriți și micșorați direct înainte sau înapoi.
  • Rotița de derulare Faceți clic și trageți: Deplasați liber, în jos, în stânga și în dreapta, în spațiul 3D.
  • Sagetile: Mutare direct înainte, înapoi, stânga sau dreapta.

Noțiuni de bază împreună cu Z

Indiferent dacă faceți un joc 2D sau 3D, veți dori să vă familiarizați cu axa z-ului. Multe clase și funcții vor face uz de axa z și, deși este posibil să nu doriți să modificați poziția unui obiect pe axa z, va trebui să fiți conștienți de el și de rolul pe care îl joacă în diferite funcții.

Cea mai obișnuită apariție a axei z, care într-adevăr nu poate fi evitată, este utilizarea ei în Vector3 clasă. Fiecare obiect din Unitate are a Transforma componentă, care este ceea ce deține informațiile pentru rotație, poziție și toate datele aferente. În Unitate, tranform.position este a Vector3, care conține coordonatele x, y și z ale obiectului.

Deci, chiar dacă jocul dvs. este 2D, va trebui să lucrați cu Vector3 clasa și, prin urmare, va trebui să fiți conștienți de acest parametru. Cea mai ușoară posibilitate, în acest caz, este de a seta z parametru pentru 0, sau să o setați la actual z valoare prin citirea de la transform.position.z.


Mișcarea de bază

După cum am arătat mai sus, toate informațiile legate de mișcare sunt stocate într-un Transforma componentă. Ah, dar nu poți scrie pur și simplu la transform.position Vector3-cel puțin nu în C #. În schimb, trebuie să creați un nou Vector3, setați valorile dvs. Vector3 (X, y, și z), apoi setați transform.position la noul tău Vector3, după cum urmează:

// Nu putem scrie la transform.position, asa ca vom crea un vector Vector3: Vector3 newPosition; newPosition = Vector3 nou (theX, theY, theZ); // Setați transform.position la obiectul newPosition Vector3. transform.position = newPosition;

În timp ce acest lucru nu este chiar complicat, acesta va adăuga cu siguranță la grămada de lucruri pentru a vă opri dacă nu știți!


Concluzie

În general, nimic de mai sus nu este deosebit de avansat sau foarte tehnic; este doar o grămadă de informații pe care începătorii Unității le pierd adesea în timp ce învață. Oricine se poate gândi la toate acestea în cele din urmă, dar poate dura nenumărate ore de depanare, googling și experimentare și nu este nevoie de asta.

Am urmărit fiecare videoclip tutorial pe site-ul Unity și, deși este corect să spun că nu am absorbit toate din prima rundă de informații, o mulțime de cele de mai sus pur și simplu nu este menționată sau nu i se acordă suficientă atenție pentru ao face să iasă în evidență. Învățând tot ce am învățat mi-a luat ceva timp și, sperăm, această listă de informații compilate va accelera curba de învățare pentru viitorii începători pentru dezvoltarea unității.

Ce dureri în creștere ați întâlnit în timp ce învățați Unitatea?