Introduzione a Unity 3D
Unity 3D è un potente motore di sviluppo di giochi. È multipiattaforma cioè ti permette di creare giochi per mobile, web, desktop e console, circa 30 piattaforme in tutto. Unity 3D ha molte caratteristiche interessanti, alcune delle quali sono riportate di seguito:
- Costo: La versione personale di Unity 3D è gratuita per principianti, studenti e hobbisti. Unity Personal ha tutte le caratteristiche principali di Unity. Ha anche analisi di base, cloud build, annunci, multiplayer, acquisti in-app e funzionalità multipiattaforma. Oltre a queste caratteristiche, Unity personal ha anche alcune limitazioni. Altre due versioni Unity Plus e Unity Pro sono disponibili anche per creatori e professionisti seri, a partire dal prezzo di $ 35 al mese.
- Editor tutto in uno: Unity è conosciuto come un editor tutto in uno. L'editor di Unity ha più strumenti a misura di artista per la progettazione di esperienze impressionanti. Ha un forte assortimento di strumenti di sviluppo per implementare la logica del gioco e un gameplay di fascia alta. Unity ti consente anche di creare giochi 2D e 3D. Include anche strumenti di individuazione del percorso basati su un sistema di navigazione. Ha un eccellente sistema integrato per creare interfacce utente accattivanti. Il suo motore fisico Box2D ci consente di creare movimento, slancio, forza e gameplay realistici.
- Piattaforme: Unity supporta molte piattaforme diverse come Linux, IOS, Android, Windows, ecc. totalmente quasi 30 piattaforme.
- Realtà virtuale e aumentata: Unity supporta lo sviluppo della realtà virtuale e aumentata. È il motore più utilizzato per lo sviluppo XR. Supporta Microsoft HoloLens, Stream VR/Vive, Gear VR e PlayStation VR in Unity Plus per la realtà virtuale e aumentata.
- Multigiocatore: Per i giochi in rete e multiplayer in tempo reale Unity è l'opzione migliore. Fornisce server per la collaborazione in tempo reale.
- Prestazioni del motore: Le prestazioni del motore di Unity sono straordinarie. Il sistema di elaborazione multi-thread sta arrivando per scenari intensivi. Il motore di Unity ha strumenti di profilazione avanzati che determinano se il tuo gioco è legato alla CPU o meno e dice anche come ottimizzarlo con una migliore esperienza.
- Unity Asset Store: È un enorme catalogo di contenuti gratuiti e a pagamento. Puoi aumentare i tempi di sviluppo scaricando molti modelli e risorse gratuiti integrati. Anche Unity asset store ha progetti completi sia gratuiti che a pagamento.
- Resa grafica: Unity ha uno dei migliori sistemi di rendering grafico. Ti consente di creare ambienti come giornate luminose, bagliori sgargianti di insegne al neon, mezzanotte scarsamente illuminate e tunnel ombrosi. Produce effetti visivi sorprendenti. Sebbene Unity supporti la multipiattaforma, ma cerca comunque di coprire le API grafiche di basso livello di ogni piattaforma per risultati migliori e soffocare l'esperienza dell'utente.
- Collaborazione di squadra: Dispone di funzionalità che consentono la collaborazione e un flusso di lavoro semplice. Il cloud storage di Unity ti consente di salvare, condividere e sincronizzare i tuoi progetti ovunque.
- Rapporti sul rendimento: Il sistema di reporting delle prestazioni di Unity si occupa dei problemi in tempo reale. I problemi ad alta priorità vengono risolti in modo molto efficiente. Trova gli errori dell'applicazione su dispositivi e piattaforme.
Interfacce Unity
Esploriamo le interfacce dell'editor di Unity, che sono configurabili. È composto da finestre tappate che puoi riorganizzare in base alle tue esigenze. Esploriamo le impostazioni predefinite della finestra. Ecco l'immagine come appare
Finestra Gerarchia
La finestra Gerarchia rappresenta ogni oggetto nella scena. Mostra come gli oggetti sono collegati tra loro nella scena, quindi queste due finestre sono correlate. Nella finestra della gerarchia c'è un elenco a discesa chiamato come Creare. Puoi creare un oggetto vuoto, oggetti 3D, oggetti 2D, luce, audio, video, sistema di particelle e oggetti fotocamera molto facilmente. La finestra della gerarchia è mostrata di seguito. 'Untitled' è il nome della scena. Puoi rinominarlo come vuoi. Puoi vedere un'icona a discesa sul lato destro di senza titolo (nome scena). Facendo clic su questo menu a discesa è possibile visualizzare diverse opzioni per Salva scena e Aggiungi nuova scena.
Finestra scena
La finestra della scena è dove crei la tua scena. È dove puoi interagire con i tuoi oggetti e modelli di gioco. Puoi ridimensionare, rimodellare e riposizionare gli oggetti della scena. Questa è la finestra in cui inizi a lavorare con Unity. La vista della scena può essere 2D o 3D a seconda dell'impostazione del progetto. Ecco una schermata di come appare la finestra della scena:
Nella finestra della scena puoi vedere un'altra scheda etichettata Ombreggiato, qui è dove puoi selezionare il tipo di vista che desideri, ombreggiato o wireframe. Ha molte altre opzioni come Varie, Illuminazione globale, GI in tempo reale, GI al forno e molti altri. È possibile visualizzare in 2D o 3D utilizzando il pulsante accanto a Ombreggiato cadere in picchiata. Il prossimo è il pulsante di attivazione/disattivazione per l'illuminazione della scena. Allo stesso modo un pulsante di attivazione/disattivazione per l'audio della scena. Il prossimo è un elenco a discesa per abilitare sky box, nebbia, materiale animato ed effetti immagine.
Finestra di gioco
La finestra di gioco rappresenta il gioco finale pubblicato in modalità di gioco. Viene renderizzato dalle telecamere che hai usato nel tuo gioco. Nella finestra di gioco puoi vedere un'altra barra degli strumenti come mostrato di seguito nella schermata:
Il display 1 mostra la telecamera presente nella scena di gioco. Per impostazione predefinita è impostato su Visualizza 1 per la fotocamera principale. Se si dispone di più telecamere e si desidera cambiare, è possibile selezionare dall'elenco a discesa. Accanto a questo puoi vedere un menu a discesa per le proporzioni. È possibile selezionare in base allo schermo del monitor del dispositivo di destinazione. Successivamente puoi vedere un Dispositivo di scorrimento della scala per ingrandire. Scorri verso destra ed esamina più dettagli della tua scena in modalità di gioco. Il prossimo è il pulsante per Massimizza in riproduzione, quando si fa clic, la dimensione della finestra di gioco sarà massima in modalità di gioco. Disattiva audio l'interruttore viene utilizzato per disattivare/attivare l'audio. Statistiche mostra le statistiche di rendering relative all'audio e alla grafica del gioco.
Finestra delle risorse del progetto
Come mostra il nome, la finestra delle risorse ha tutte le risorse del tuo progetto che puoi utilizzare. Se importi qualcosa di nuovo, apparirà nella finestra delle risorse del progetto. La finestra delle risorse del progetto ha due parti, il pannello sinistro e il pannello destro, come mostrato nella schermata seguente:
Il riquadro sinistro mostra la struttura gerarchica delle risorse del progetto. Quando fai clic su qualsiasi cartella, verranno visualizzati i dettagli nel pannello di destra. Ad esempio nella figura data prefabbricati si fa clic sulla cartella nel pannello di sinistra in modo che i suoi dettagli vengano visualizzati nel pannello di destra poiché contiene due oggetti di gioco. Nel pannello di sinistra puoi vedere un preferiti sezione, dove puoi trascinare gli elementi che vuoi usare molto frequentemente per evitare perdite di tempo nella loro ricerca searching. Sopra di esso puoi vedere un Creare menu a discesa che consente di creare uno script C#, una cartella, uno shader, una skin GUI, una scena, un prefabbricato, un materiale e molto altro.
Finestra della console
La finestra della console è il luogo in cui puoi vedere i tuoi errori, avvisi e messaggi. Puoi regolarli facendo clic sui pulsanti di attivazione/disattivazione. Consente inoltre di cancellare tutti gli errori, avvisi e messaggi. Puoi mettere in pausa gli errori per un certo tempo. Qui puoi vedere nella figura seguente
L'icona a discesa nell'angolo in alto a destra ha opzioni per il registro dell'editor e la registrazione della traccia dello stack.
Finestra di ispezione
La finestra di ispezione è una delle finestre più interessanti e utili dell'editor. È il luogo in cui puoi modificare tutte le proprietà dell'oggetto di gioco selezionato. Ogni oggetto di gioco ha il proprio tipo, quindi le loro proprietà saranno diverse e la finestra dell'ispettore può variare. Risorse, script e oggetti di gioco variano nelle proprietà. Vediamo le proprietà di un cubo nella finestra di ispezione. Ecco l'immagine:
Puoi rinominare il tuo oggetto di gioco semplicemente facendo clic sul nome precedente e digitandone uno nuovo. Successivamente vedrai la sezione di trasformazione in cui puoi regolare la posizione, la rotazione e il ridimensionamento dell'oggetto di gioco selezionato. Nell'ultimo vedi il nome di un pulsante come Aggiungi componente, fai clic su di esso per aggiungere nuovi componenti al tuo oggetto di gioco, ad esempio se desideri allegare uno script, fai clic su aggiungi componente e digita il nome del tuo script.
Barra degli strumenti
L'ultima è la scheda della barra degli strumenti, ha molte funzioni utili. Contiene alcuni strumenti di base per manipolare la vista della scena e gli oggetti. Al centro ci sono i pulsanti per la riproduzione, la pausa e il controllo del passo. I due pulsanti successivi mostrano il cloud Unity e l'account Unity. Ecco la figura come appare:
Iniziare con Unity
Iniziamo a creare un nuovo progetto in Unity perché è ora di giocare con ciò che abbiamo imparato. Fare doppio clic sull'icona Unity apparirà la seguente finestra:
accedere Nome del progetto, seleziona un posto di lavoro Posizione e quindi seleziona il tipo di progetto 2D o 3D. Clicca su Crea progetto.
Per impostazione predefinita vedrai una scena senza titolo contenente una telecamera principale e una luce direzionale nella scena. Iniziamo a creare un ambiente.
Ambiente dell'edificio
Prima di tutto crea un aereo cliccando su Crea -> Oggetto 3D e poi seleziona Aereo. O in alternativa puoi crearlo cliccando su Oggetto gioco -> Oggetto gioco e poi seleziona Aereo. Vai alla finestra della gerarchia e fai clic sull'oggetto del gioco aereo. Ora vai alla finestra di ispezione e rinominala come Terra. Ora regola i valori di trasformazione in modo che questo piano assomigli a una strada diritta. Basta scalare da X a 6 e Z a 50. Ecco l'immagine come appare
Ora scarica una texture stradale e applicala sull'oggetto a terra. Crea un nome di cartella come Texture. Trascina la texture stradale scaricata nella cartella Texture Texture. Ora seleziona Terra e trascina la trama della strada nella vista della scena. Ecco l'immagine come appare
Questa è la texture che ho scaricato
Dopo aver applicato la trama sul terreno, fai clic su Terreno e imposta la piastrellatura nella finestra di ispezione. Ecco come l'ho impostato.
Ora che hai creato un modello di strada, creiamo un modello di palla in unità.
Vai a Crea -> Oggetto 3D e poi seleziona Sfera, vedrai un oggetto sfera nella finestra della scena. Selezionalo e vai alla finestra di ispezione per rinominarlo come Palla. Ora regola i valori di trasformazione di conseguenza. Basta ridimensionarlo a 5 lungo tutti e tre gli assi e riposizionarlo al centro della strada. Ecco come appare
Ora crea una recinzione o un muro intorno alla strada.
Vai a Crea -> Oggetto 3D e poi seleziona Cubo. Selezionalo e rinominalo in Wall1. Vai alla finestra di ispezione e imposta i valori di trasformazione in modo che assomigli a un muro intorno alla strada. Ecco come appare:
Vedere questi valori di trasformazione per Wall1. Scala da Y a 6 e Z a 500. Quindi regolare la sua posizione in modo che arrivi agli angoli della strada.
Ora cerca una texture da parete, scaricala e copiala su Struttura cartella nelle risorse. Trascina la texture del muro sul muro nella finestra della scena. Regola la lavorazione in modo che appaia bella e liscia. Ho regolato la piastrellatura da X a 50 e Y a 1.5. Dopo aver regolato la piastrellatura, ecco come appare
Questa è la trama che ho usato per il muro
Abbiamo creato un muro per un lato della strada. Ora fai la stessa cosa anche per l'altro lato della strada. Invece di passare attraverso tutto il processo, possiamo semplicemente copiare Wall1 e rinominalo in Wall2.
Selezionare Wall1 nella finestra della gerarchia e quindi fare clic con il tasto destro e quindi selezionare then Duplicare opzione. Creerà un altro oggetto di gioco con le stesse dimensioni e valori di trasformazione. Clicca su Muro1(1) e rinominalo in Wall2. Ora regola la posizione in modo che arrivi all'altro angolo della strada.
Guarda l'immagine seguente quanto è bello
I miei valori di posizione per Wall2 vanno da X a -29.da 6 anni a 2.6 e Z a 2.6.
Ora crea un materiale per Palla. Vai alla finestra del progetto e crea una cartella facendo clic con il tasto destro del mouse e quindi seleziona Cartella. Chiamalo come Materiali. Fare nuovamente clic con il tasto destro del mouse e creare un materiale. Chiamalo come palla rossa. Nella finestra dell'ispettore seleziona il colore del materiale. Vai a Mappe principali e seleziona Albedo color to red. Aumenta la trama metallica scorrendo la barra verso destra. Trascina questo materiale su Palla nella vista della scena. Ecco come appare
Ecco come appare il materiale:
Quindi abbiamo finito con lo sviluppo del nostro ambiente. È ora di fare un po' di codice. Per questo dobbiamo creare uno script.
Scripting in Unity
Per implementare le tue funzionalità di gioco e per controllare il comportamento del gioco che Unity fornisce come meccanismo di scripting. Puoi scrivere il tuo script per l'output desiderato del gioco. Con questi script puoi attivare eventi di gioco, modificare le proprietà del componente e rispondere agli input dell'utente. Fondamentalmente Unity supporta due diversi linguaggi di programmazione per scopi di scripting, uno è C# e l'altro è JavaScript. Oltre a queste due lingue molte altre .NET possono essere utilizzati anche con Unity. Gli script sono noti come componenti del comportamento in Unity.
Creare uno script
Iniziamo a creare uno script Unity. Per questo vai alla finestra delle risorse e crea una nuova cartella denominata script (puoi saltare la creazione di nuove cartelle per ogni nuovo tipo di risorsa, ma è buona norma mantenere le cose organizzate). Ecco come appare ora la finestra delle mie risorse:
Ora apri il script cartella, fare clic con il tasto destro, quindi andare su Creare e seleziona C# sceneggiatura. Rinomina script in Movimento. Stiamo creando questo script per muovere e far rotolare la palla sulla strada. Per ora la palla è ferma, non fa niente, creiamoci un po' di movimento.
Fare doppio clic sullo script di movimento che si aprirà in Mono Develop. Se il tuo script è un comportamento mono, vedrai del codice prescritto come questo
usando il sistema.collezioni; usando il sistema.Collezioni.Generico; utilizzando UnityEngine; public class MovementScript : MonoBehaviour // Usalo per l'inizializzazione void Start() // L'aggiornamento viene chiamato una volta per frame void Update ()
Puoi vedere due funzioni Start() e Update().
Inizio(): La funzione di avvio viene utilizzata per inizializzare variabili e oggetti. Viene chiamato solo una volta quando lo script è abilitato appena prima di qualsiasi altra chiamata di funzione di aggiornamento.
Aggiornare(): È una funzione di comportamento mono, viene chiamata una volta in ogni frame.
Oltre a questi due ci sono molte altre funzioni di comportamento mono per esempio awake(), fixedUpdate(), lateUpdate() ecc.
Per muovere la palla sulla strada bisogna prima di tutto farne un corpo rigido (è un corpo solido ideale in cui si trascura la deformazione). Selezionare Palla nella finestra della gerarchia e fare clic su Aggiungi componente pulsante nella finestra di ispezione. Digitare corpo rigido e premere accedere. Un corpo rigido si attaccherà al Palla. Ora vai allo script e crea una variabile privata di tipo Corpo rigido. Ora assegna il corpo rigido della palla a questa variabile che hai appena creato nello script.
privato Rigidbody rb; rb = GetComponent();
Ora scrivi del codice per il movimento di questo corpo rigido. Qual è l'idea?? La palla dovrebbe muoversi quando premo i tasti freccia della tastiera. Dovrebbe spostarsi in avanti quando viene premuto il tasto su, indietro quando viene premuto il tasto giù e così via.
Quindi l'input proviene dalla tastiera, come dovrei ottenere questo input?? La classe Input di Unity ha un nome di funzione Ottieni asse(), per restituisce il valore dell'asse virtuale identificato dal nome dell'asse. Crea due variabili una per l'asse x e una per l'input dell'asse y. Ecco come dovrebbe essere
float moveHorizontal = Input.GetAxis ("Orizzontale");
Ora crea una variabile Vector3 per ottenere i valori di movimento.
Vector3 movimento = nuovo Vector3 (moveHorizontal, 0.0f, moveVerticle );
Il primo parametro è il valore dell'asse x, il secondo è il valore dell'asse y e il terzo è il valore dell'asse z. Poiché la palla non si muoverà nella direzione dell'asse y, assegnagli zero zero. Infine aggiungi questo movimento al corpo rigido e moltiplica con un numero costante per la velocità o crea un'altra variabile per la velocità. Vedi il codice completo qui sotto
usando il sistema.collezioni; usando il sistema.Collezioni.Generico; utilizzando UnityEngine; public class Movimento : MonoBehaviour public float speed; privato Rigidbody rb; // Usa questo per l'inizializzazione void Start() rb = GetComponent(); // Fixed Update viene chiamato dopo un numero fisso di frame void FixedUpdate () float moveHorizontal = Input.GetAxis("Orizzontale"); float moveVerticle = Input.GetAxis("Orizzontale"); Movimento Vector3 = nuovo Vector3 (-1*moveHorizontal, 0.0f,-1*moveVerticle ); rb.AddForce (movimento * velocità);
Poiché la velocità è una variabile pubblica, puoi assegnare un valore nella finestra di ispezione. Allega questo script alla palla trascinandolo nella finestra di ispezione o premendo Aggiungi componente pulsante. Premi il pulsante di riproduzione e verifica la codifica se la palla si muove o no.
Impostazione della fotocamera
L'ultima cosa che noterai è che quando premi il pulsante avanti e la palla inizia a muoversi, esce dalla fotocamera quando la fotocamera è ferma. Cosa dovremmo fare? Dovremmo spostare anche la telecamera? Sì, è la cosa più semplice da fare. Rendi la videocamera figlia della palla trascinando la videocamera principale sulla palla.
Conclusione
Questo era un tutorial introduttivo di base in cui hai imparato molte funzionalità interessanti, la creazione di ambienti e lo scripting in Unity. Non esitare, inizia a creare il tuo primo gioco con Unity oggi e divertiti!