Unity è una piattaforma straordinaria e continua a crescere. Come molti altri sviluppatori di giochi, sono passato a Unity come piattaforma principale per lo sviluppo di giochi. Mentre Unity è uno dei programmi di sviluppo di giochi più facili da usare che abbia mai avuto il piacere di usare, non è esente da crescenti dolori. Ho lavorato per superare e documentare queste prove e in questo articolo condividerò la mia esperienza.
Post correlatiUnity Inspector è dove vedrai tutte le informazioni sull'oggetto selezionato nella vista scena.
Se si crea un cubo e quindi lo si seleziona, Inspector mostrerà il suo Trasformare componente, che mostrerà il X
, y
, e z
proprietà della posizione, rotazione e scala di detto cubo. Se hai un nemico più complesso che hai creato, selezionandolo verranno visualizzate tutte le informazioni su quell'oggetto, che potrebbero includere qualsiasi numero di componenti che hai collegato a quell'oggetto.
C'è un problema: affinché una proprietà sia visibile nell'Inspector, deve essere resa pubblica in qualunque script a cui appartiene la proprietà: se vuoi vedere la proprietà fireSpeed
variabile di un componente collegato al tuo oggetto, quindi fireSpeed
deve essere dichiarato come variabile pubblica.
È qui che entra in gioco il vero potere dell'Ispettore, e qui si deve ancora imparare un altro trucco. Qualsiasi proprietà che può essere vista nell'Inspector può essere modificata per quell'oggetto. Se il tuo script imposta un valore predefinito per una proprietà tramite codice, è molto importante saperlo il valore dell'Inspector lo sovrascriverà. Ciò significa che se il fireSpeed
variabile aveva un valore predefinito di 4
, e tu l'hai impostato 8
nell'Ispettore, poi il fireSpeed
la variabile per quell'oggetto rimarrà come 8
, anche se si modifica il valore in 4
nella sceneggiatura e salvarlo.
(Si noti che l'impostazione della variabile in un ambito diverso da pubblico, ovvero privato o protetto, ripristinerà la proprietà sul valore dello script e nasconderà il valore da Inspector.)
L'ultimo trucco da ricordare è che i valori modificati nell'Inspector mentre si è nella Vista scena quando il gioco non è in esecuzione salverà, mentre i valori verranno modificati nell'Inspector durante il gioco è l'esecuzione durante la modifica dal vivo (sì, puoi vivere le variabili di modifica durante il test!) tornerà ai loro valori una volta che hai finito di testare il progetto.
Questi pochi punti chiave non sono troppo complessi, ma è molto importante che li ricordi, poiché non essere a conoscenza di tutto ciò può portare a qualche debugging molto confuso.
I prefabbricati sono uno degli aspetti più importanti di Unity, ma all'inizio possono essere un po 'confusi, dato che ci sono alcuni piccoli accorgimenti che non sono del tutto evidenti a prima vista.
Un prefabbricato è essenzialmente una definizione predefinita di un oggetto: un progetto, a tutti gli effetti, molto simile a una classe in OOP. Le prefabbricate possono essere composte da qualsiasi numero di oggetti di gioco, grafici, componenti e così via. Si usano al meglio quando si desiderano molte istanze di un oggetto e si possono desiderare leggere alterazioni dell'oggetto specifico.
Se hai una serie di prefabbricati nella tua scena e apporti una modifica alla definizione prefabbricata, tutte le istanze di tale prefabbricato verranno aggiornate. In alternativa, se si apportano aggiornamenti a un'istanza specifica, premere Applicare, tutte le istanze del prefabbricato (così come la principale definizione prefabbricata) verranno aggiornate alla configurazione di quell'istanza specifica. Se hai modificato le variabili Inspector o altre proprietà, su un'istanza di un prefabbricato, puoi premere ritornare per ripristinare l'istanza nella stessa configurazione della definizione prefabbricata.
Una delle prime cose con cui ho lottato in Unity, anche dopo aver visto un sacco di video tutorial, è stato come navigare nello spazio visivo 3D all'interno dell'editor. Sono stato, senza dubbio, un principiante assoluto a muoversi nello spazio 3D senza essere rinchiuso in un personaggio (come quando si gioca a un gioco in prima o terza persona), ma ho comunque trovato un movimento un po 'strano e complicato.
Non è affatto male una volta che ci si abitua, ma avere un po 'più di direzione al primo salto sarebbe stato grandioso, quindi ecco alcuni comandi utili per navigare correttamente nello spazio 3D dell'editor:
Indipendentemente dal fatto che tu stia realizzando un gioco 2D o 3D, ti consigliamo di familiarizzare con il mitico asse z. Molte classi e funzioni utilizzeranno l'asse z e, sebbene non si desideri modificare la posizione di un oggetto sull'asse z, è necessario essere consapevoli di esso e del ruolo che esso svolge in varie funzioni.
L'aspetto più comune dell'asse z, che in realtà non può essere evitato, è il suo uso nel Vector3
classe. Ogni oggetto in Unity ha a Trasformare
componente, che è ciò che contiene le informazioni per la rotazione, la posizione e tutti i dati correlati. In Unity, tranform.position
è un Vector3
, che contiene le coordinate x-, y- e z dell'oggetto.
Quindi, anche se il tuo gioco è in 2D, dovrai lavorare con Vector3
classe, e quindi devi essere consapevole di questo parametro. La cosa più semplice da fare, in questo caso, è impostare l'opzione z
parametro a 0
, o per impostarlo su attuale valore z leggendolo da transform.position.z
.
Come ho affermato sopra, tutte le informazioni relative al movimento sono memorizzate in a Trasformare
componente. Ah, ma non puoi semplicemente scrivere al transform.position
Vector3
-almeno non in C #. Invece, devi creare un nuovo Vector3
, imposta i valori del tuo Vector3
(X
, y
, e z
), quindi impostare transform.position
al tuo nuovo Vector3
, come segue:
// Non possiamo scrivere su transform.position, quindi creiamo un nuovo Vector3: Vector3 newPosition; newPosition = new Vector3 (theX, theY, theZ); // Imposta transform.position sull'oggetto Vector3 newPosition. transform.position = newPosition;
Anche se questo non è esattamente complicato, sicuramente aggiungerà alla pila di cose da farti inciampare se non ne sei consapevole!
Tutto sommato, nulla di sopra è particolarmente avanzato, o molto tecnico; è solo un mucchio di informazioni che ai principianti di Unity spesso mancano durante l'apprendimento. Chiunque può capire tutto questo alla fine, ma può impiegare innumerevoli ore di debugging, googlingua e sperimentazione, e non c'è bisogno di farlo.
Ho visto ogni singolo video tutorial sul sito Unity, e mentre è giusto dire che non ho assorbito tutti delle informazioni prima volta, molto di quanto sopra semplicemente non è menzionato, o non è dato abbastanza attenzione per farlo risaltare. Imparare tutto quello che ho imparato mi ha richiesto un po 'di tempo, e spero che questo elenco di informazioni compilato acceleri la curva di apprendimento per i futuri principianti fino allo sviluppo di Unity.
Quali dolori crescenti hai incontrato mentre imparavi Unità?