You are on page 1of 37
ESPERTO IN UN CLI q Francesco Splendore Realizza il tuo videogioco 3 D Imparerai: Prete a Minced Be tis) PM) teria eer Ruts sep ol = aintervenire comprendendo errori e eure rdulee len Sere} = avutilizzare l'interfaccia di MonoDevelop Unity 3D é un potente motore grafico per Windows & Mac OS X che ci permette la creazione di complessi videogiochi sia in 2D che in 3D. Iniziamo con ordine: eos’ un motore grafico? Tl motore grafico é il cuore di un qualsiasi videogioco, esso permette la visualizzazione in tempo reale della grafica. Tlmotore grafico include anche un motore di rendering (render) sia per i giochi in grafiea 2D che per quelli in grafica 3D, un motore fisico, un rilevatore di collisioni (che ci permette di collidere contro oggetti fisici tipo muri, oggetti, superfici, ete.), suoni, linguaggio di scripting, animazioni, AI. (artificial intelligence), networking ¢ infine seene-graphics. Tornando su Unity 3D, esso ci permettera di creare videogiochi per le seguenti piattaforme: Windows Mac Linux Xbox 360 PlayStation 3 Nintendo WIT iPad iPhone Android Flash Player (beta) WebPlayer Inutile dire che per le piattaforme Xbox 360, Playstation 3 e Nintendo WII servono delle licenze che possono essere acrnistate. direttamente dai produttori di qneste console. Per sistemi iOS serve im sistema aperative, Macintosh, mentre per Android serve un sistema operativo Windows. Download e installazione Esistono due versioni di Unity 3D, la versione free e la versione Pro. La prima é Ja versione gratuita di Unity che non presenta molte caratteristiche della versione Pro, come ad esempio gli Screen Effects, le ombre a tempo reale, PHDR e altro. La versione gratuita pud essere scaricata direttamente dal sito uffici * http://Unity gD.com/unity/download/ La versione Pro, invece, é a pagamento ed & la versione completa di Unity; il prezzo pud variare da $ 1,500 senza plugin fino ad un massimo di $ 5,000 con tutti i plugin installati. A chi é destinata questa collana Meorso di Unity 3D @ destinato a tutti gli utenti che sognano da sempre di creare con le proprie forze un complesso videogioco completamente da zero. Molti concetti verranno spiegati in maniera molto semplice e chiara, comprensibile sia per gli utenti alle prime armi che per utenti che hanno gid avuto modo di provare la creazione di un gioco con Unity o con altri motori grafici Prerequisiti Se avete intenzione di creare un gioco completamente da soli, mi spiace dovervi dire che per voi & impossibile. Per I'isso di Unity e dei vari component, infatti, dovrete avere uno staff a vostra disposizione (amici, conoscenti, etc.), poiché servono pid persone che si occupino di diversi aspetti: * qualcuno che si occupi della grafica (oggetti 3D e texture); * qualeuno che si oceupi di scripting (JavaScript, C¥, Boo oppure C++); * qualeuno che si occupi della creazione delle ambientazioni direttamente in Unity; * qualcuno che si occupi dei testing (testare il videogioco alla ricerca di eventuali errori). Quindi rimboechiamoci le maniche ¢ raduniamo un paio di amici per formare il nostro Team! Requisiti hardware Come ogni motore grafico, anche Unity dispone di requisiti minimi che il nostro computer deve rispettare affinché il software giri perfettamente. Questi i requisiti necessari: CPU Intel Atom 1.6 GHz (single core), equivalente o superiore dotata di tecnologia Hyper-Threading. Scheda video Intel (successiva alla GMAg50), AMD/ATI 0 Nvidia capace di risoluzione 1280x1024. 128 Mb di memoria video. 1 Gb di RAM Inalternativa sono aceettati anche i seguenti requisiti: CPU 2 GHz (single core), equivalente o superiore. Scheda video Intel (successiva alla GMA950), AMD/ATI o Nvidia capace di risoluzione 1280x1024. 128 Mb di memoria video. 1 Gb di RAM. Attenzione: i requisiti riportati sono solo quelli per ilcorretto funzionamento di Unity; il gioco che creerete garantira performance maggiori. Cosa imparerai In questo primo volume non imparerai subito a programmare o a costruire mappe complesse, ma, con molta calma, apprenderai 'utilizzo dell interfaccia Unity e delle sue varie funzioni. Anche se forse non sembra, Unity @ un software veramente complicato da usare: nel suo Layout sono infatti contenute numerose voci, opzioni, collegamenti, meni, ete. Quindi, passo dopo passo in questo primo volume, aiutandoci con le immagini che seguono ogni spiegazione, vedremo come muoverci, come cambiare le impostazioni di Unity, scoprendo le ragioni di utilizzo di ogni singola funzione. Alcune funzioni perd non saranno riportate, non perché non legate ai nostri obiettivi oppure in quanto troppo complesse da usare, bensi perché attualmente non ci saranno di alcuno scopo (ad esempio le opzioni per internet oppure per i pacchetti dati, nel caso di un gioco multiplayer). Una volta fatto doppio click sul programma, esso sara avviato e ci verra chiesto di creare un nuovo progetto, quindi di inserire la locazione nelhard disk e di importare dei packages (che vedremo solo nel prossimo volume). Tramite il tasto Browse... inserite la cartella di destinazione del vostro progetto (1) e tramite la stringa sulla sinistra inserite il nome del progetto (2), successivamente dovrete scegliere quali packages importare, in questo caso non inserite nulla (3) e cliccate su Create (4). [oer] Gea Rew Fae] ProjectLocetion [C:\Users\itente\Documents ezioni | Browse, Import the falloving packages: B [5 Character Controler.unityPackege [F Glass Retraction (Pro Only). unityPackane Ey image Effects (Pro Only). unityPackege | ight CockieswrityPactane Bi ughtFiaresunityPockege Partdes.unityPackoge Physic Materials. unityPackage Complimenti, avete fatto il primo piecolo passo per diventare un programmatore DOC di videogame! una schermata simile a ques Successivamente vi compari Non preoccupatevi se qualcosa sara diverso, poiché il layout di Unity cambia a seconda della versione (Free, Pro) e anche a seconda della release (in questo caso parliamo di Unity Pro versione 4.0.0f7). Ora peré vediamo con cura ogni singola parte del Layout di Unit Project panes ee In basso a destra (se la posizione non verra cambiata dall'utente) possiamo trovare la barra del progetto, sulla sinistra abbiamo la visualizzazione delle cartelle del progetto, mentre sulla destra possiamo vedere il contenuto della cartella in cui ci troviamo. Se facciamo click col tasto destro del mouse ci vengono mostrati questi comandi: Create Show in Explores Open b Import New Asset Import Package Export Package. Find Referencesln Scene Select Dependencies Refresh Reimpor: Reimport all Sync ManeDevelep Project Passiamo a esaminarli: 1. Create, con il quale possiamo creare e inserire nuovi oggetti nel nostro progetto. 2. Showin Explorer, con il quale ci verra aperta la finestra del progetto sul nostro PC. Open, con il quale possiamo aprire la cartella selezionata. . Delete, con il quale possiamo eliminare la cartella selezionata. . Import New Asset..., con il quale possiamo inserire all'interno del nostro progetto altri file di Unity (ad esempio una mappa gia creata in precedenza). 6. Import Package, con il quale possiamo inserire dei Package predefiniti da Unity (che vedremo nel seguente volume di questa collana). 7. Export Package..., con il quale possiamo esportare dei nostri package personalizzati. 8. Find References In Scene, con il quale possiamo cercare all interno della nostra cartella determinati file. 9. Select Dependencies, con il quale possiamo selezionare tutti gli elementi presenti nelle cartelle. 10. Refresh, con il quale possiamo aggiornare la nostra cartella all’interno del progetto. 11, Syne MonoDevelop Project, con il quale possiamo aprire il programma MonoDevelop (programma per la creazione degli script). Ora che abbiamo imparato i comandi base, proviamo a creare una cartella al’interno del nostro progetto, quindi facciamo click col tasto destro del mouse e selezioniamo la voce Folder. Create ») CFoider Show in Explorer cae eee # Script fess Boo Scriat Import New Ascet Shader Import Package Compute Shader Export Package, aE fg Reteene: Material Select Dependencies ae Fefrech Cubernap Feimpor Lens Flare ane Custom Font Render Texture Sync MonaDevelop Project Ptrysc Material Gustin Animator Controller ‘Avatar Body Mask ‘Avatar Skeleton Mask Una volta cliccata questa voce, verra creata la nostra cartella e potremo immediatamente passare a rinominarla, ders foe Possiamo notare che la cartella si trova sia nella barra a sinistra, che in quella a destra. PRO TIPS: vi ricordo che nella barra sulla sinistra verranno visualizzate tutte le cartelle e i file del nostro progetto, invece in quella a destra verra visualizzato il contenuto della cartella in cui ci troviamo; in questo caso verra visualizzata la nostra cartella poiché non ci troviamo all'interno di nessun altra cartella, quindi siamo nella “home” del progetto. Possiamo creare infinite cartelle nel nostro progetto, cosi da tenere tutti i nostri file ordinati. Spieghiamo questa cosa con un esempio pratico: allinterno del nostro progetto posso creare la cartella “livelli’, all'interno di questa creo la cartella “modelli”, a sua volta contenente un‘altra cartella di nome “texture” cosi da ottenere il seguente schema: livelli + modelli — texture Nella cartella “livelli” metteré le mappe create, in “modelli” collocherd i modelli gD del livello in questione, e in “texture” metteré le texture da adattare ai modelli 3D presenti nel livello. Alfinizio pud sembrare abbastanza complesso, ma con un po’ di pratica diventera tutto molto semplice da capire. Ora che abbiamo creato la nostra o le nostre cartelle, vediamo come eliminarle. Facciamo click col tasto destro del mouse sulla cartella in questione e clicchiamo su Delete; subito dopo confermiamo la nostra scelta cliccando di nuovo su Delete. Delete selected asset? Asseis/iso You cannet unde this acon. Andando sulla sinistra del layout di Unity possiamo trovare la seguente sezione: La Hierarchy, ovvero la gerarchia dei nostri oggetti. In questa sezione saranno raffigurati tutti gli oggetti che verranno inseriti all'interno della mappa in cuici troviamo. In questo caso, anche se abbiamo appena creato il nostro progetto, possiamo vedere che all'interno della gerarchia dello stesso é presente la Main Camera, ovvero la telecamera principale. La telecamera principale ci permette di visualizzare tutti i cambiamenti all’ interno della mappa (0 livello) nel preciso momento in cui li facciamo ‘Ad esempio: se attraverso editor di Unity inseriamo degli oggetti 3D allinterno della nostra mappa e subito dopo inseriamo una luce per illuminare, per verificare che tutto si veda correttamente dovremmo avviare il gioco; con la telecamera principale, invece, possiamo vedere e “testare” la nostra mappa senza avviare il gioco, ma operando direttamente dalla “visualizzazione camera” (che vedremo tra poco). Nel caso in cui volessimo cancellare la Main Camera bastera cliccarci sopra col tasto destro del mouse e dlccare poi su Delete. Nella parte centrale di Unity é posizionato il nostro editor, con il quale procederemo alla creazione delle mappe. Nella parte alta troviamo due linguette, Scene e Game. Con la prima linguetta abbiamo la vista 3D dell'editor di creazione (rappresentato da una griglia), con il quale possiamo posizionare i modelli, le luci, éte. per la creazione della nostra mappa. Invece, con la seconda linguetta possiamo attivare la “visualizzazione amera” citata in precedenza, con la quale possiamo vedere la nostra mappa all’interno del gioco. Ora peré concentriamo sulla scena, per la precisione vediamo come muoverci allinterno del nostro editor. © Con il tasto sinistro del mouse possiamo selezionare gli elementi presenti all’interno della mappa (utile per selezionare una grande massa di oggetti). * Tenendo premuto il tasto destro del mouse si attivera la visualizzazione libera, con cui, spostando il mouse (sempre con i] tasto destro premuto), possiamo roteare la nostra mappa. Con la rotellina del mouse possiamo zoomare in avanti e indietro. Tenendo premuto il tasto destro pit il tasto “W” possiamo avanzare o “camminare” all’interno della nostra mappa in costruzione. Tenendo premuto il tasto destro pit il tasto “S” possiamo indietreggiare. Tenendo premuto il tasto destro pit il tasto “A” possiamo andare verso sinistra. ‘Tenendo premuto il tasto destro pit il tasto “D” possiamo andare verso destra. Tenendo premuto il tasto destro pit il tasto “W” 0 “S” 0 “A” oppure “D” pit il tasto shift possiamo muoverci pili velocemente nell’editor. © Cliccando con il tasto sinistro del mouse sopra I’editor e schiacciando il tasto “spazio” possiamo attivare la visualizzazione a pieno schermo del nostro editor. Perfetto! Abbiamo appena appreso tutti i comandi per muoverci liberamente nell'editor, ma attenzione, questi comandi NON funzionano per la vista Game o “visualizzazione camera’, Tunica eccezione & rappresentata dalla visualizzazione a pieno schermo che funziona per entrambi. Per disattivare la griglia (o anche per attivarla) possiamo premere il tasto a forma di panorama posto sulla parte alta dell'editor, come mostrato nell'immagine: Premendo il tasto a forma di sole possiamo attivare e disattivare i punti di luc audio possiamo attivare e disattivare l'audio. Spostandoci ulteriormente in alto nell’editor troviamo questa barra: ; con il tasto a forma di ma aI | * Selezionando l'icona a forma di mano possiamo “trascinare” la nostra mappa nell’editor. * Selezionando le freccette spostiamo nelle direzione X, Y, Z Voggetto selezionato. * Selezionando le frecce a forma di cerchio passeremo a roteare, sempre nelle direzioni X, Y, Z, Voggetto selezionato. * Selezionando invece lultima icona, a forma di un quadrato ridimens dimensione dell oggetto selezionato nelle dimensioni X, Y, Z. mato possiamo aumentare le Vedremo pit accuratamente le funzioni di questi tre tasti nel prossimo volume. I tasti Pivot ¢ Local per ora non servono, quindi consiglio vivamente di non considerarli Cliecando sul tasto Play abbiamo la possibilit di emulare il gioco, ovvero potremmo iniziare a giocare tramite la schermata Game direttamente da Unity senza eseguire il Setup del gioco. Selezionando il tasto Pausa possiamo interrompere l'emulazione del gioco, quindi metterlo in pausa. Cliccando invece su Rewind, alla destra di Pausa, otteniamo lo stesso effetto di quest'ultimo. Sulla destra di Unity abbiamo I'Inspector, dove ci verranno mostrate le proprieti e le impostazioni dell oggetto selezionato. Se non selezionerete alcun oggetto I'Inspector sara vuoto come mostrato nell’immagine: Invece, se ad esempio selezioniamo la Main Camera, unico oggetto che abbiamo all’interno del nostro progetto, nell’ Inspector appariranno le seguenti proprieta: Cineeey are Transform Retation eae oer) ean Se eer Coors seca ST ace fea ed ae err Rea era Ca) Le od me ferenrs me cena Potra sembrarvi particolarmente complesso: con calma passeremo quindi a spiegare tutte le funzioni e i pulsanti che vediamo all’interno dell Inspector. 1. Inserendo la spunta su questo quadratino diremo a Unity che l'oggetto @ attivo; nel caso togliessimo la spunta, l’oggetto selezionato (in questo caso la telecamera) si disattivera, diventera invisibile all’interno dell’editor e del gioco e non funzionera. In quello spazio possiamo inserire il nome dell oggetto selezionato, utile per rinominare vari oggetti creati in precedenza. In quel riquadro si indica se ’oggetto in questione é statico oppure dinamico: nel caso in cui non mettessimo la spunta e lo la: imo cosi com’é indicheremmo che si tratta di un oggetto dinamico (indicare che 8 dinamico vuol dire che loggetto potra essere spostato pid volte all'interno dell'editor); nel caso in cui inserissimo la spunta allora indicheremmo che l'oggetto & statico (indicare che & statico vuol dire che l’oggetto non verra pid spostato successivamente, consigliato quindi per pavimenti, soffitti, muri, etc). Nel riquadro Transform verranno indicate la posizione, la rotazione e la scala (0 dimensione) dell oggetto in questione; attraverso questo riquadro, manovrando e cambiando i numeri riportati in X,Y eZ applicheremo delle modifiche nella direzione, nella rotazione o nella scala dell oggetto, stesse che & possibile fare direttamente dall’editor tramite i bottoni riportati in precedenza jamo alle impostazioni un po' pid complicate, come ad esempio il Clear Flags con il quale indichiamo quale tipo di SkyBox dovremo visualizzare all'interno del gioco, oppure il colore del backgroud, il campo visivo, e tante altre informazioni che attualmente non ci interessano e che vedremo nei prossimi volumi. le impostazioni del punto 5 variano a seconda dell’oggetto indicato; in questo caso tratta della Main Camera quindi le impostazioni per altri oggetti, come ad esempio una parete, saranno totalmente diverse. 6. Qui verranno visualizzati gli script attualmente attivi sull'oggetto; in questo caso spuntarli vuol dire disattivare lo script in questione. 7. Con Add Component possiamo inserire altri componenti all'interno del nostro oggetto, come ad esempio script, gravita, collisioni, suoni, ete. Guardando sulla parte superiore di Unity (oppure nella parte top) troviamo, come in ogni programma, la barra delle opzioni. File Edit Assets GameObject Component Terrain Window Help el * File, con il quale possiamo interagire con il programma. * Edit, con il quale possiamo modificare il progetto. * Assets, ha la stessa funzione del click destro del mouse sulla barra del progetto, come spiegato in precedenza. + GameObject, con il quale possiamo inserire, modificare, o interagire con gli oggetti del progetto. * Component, con il quale possiamo inserire vari componenti, come mesh, particelle di sistema, audio, ete. * Terrain, con il quale possiamo creare e interagire con il terreno di gioco. * Window, con il quale possiamo modificare il layout di Unity. * Help, con il quale ci verranno riportati i link rapidi ad aiuti, forum, sito web di Uni Dopo questa prima schematizzazione, passiamo ad approfondire aleune voci, iniziando subito con il menu File: New Scene Ctrl+N Open Scene Ctrl+0 Save Scene Cirle Save Scene a. Cris Shift+s New Project. Open Project. Save Project Build Settings, CtrleShift+B Build & Run Ct+B Bat Tramite New Scene é possibile aprire una nuova scena (o livello).. Tramite Open Scene possiamo caricare una scena gia creata in precedenza. Tramite Save Scene possiamo salvare la scena che stiamo modificando. Tramite Save Scene as possiamo salvare la scena in una cartella diversa da quella di default. Tramite New Project possiamo creare un nuovo progetto di gioco. Tramite Open Project possiamo caricare un progetto creato in precedenza. Tramite Save Project possiamo salvare il progetto che stiamo modificando. Tramite Build Settings possiamo stabilire le varie impostazioni del gioco, come ad esempio la piattaforma finale (PC, Mac, Android, etc). Vedremo meglio quest'opzione nei prossimi volumi. + Tramite Build & Run, una volta impostata la piattaforma, il gioco si avviera automaticamente per ssere testato. * Tramite Exit chiuderemo lapplicazione di Unity 3D. Invece, cliccando sul menu Edit troviamo: Undo CtleZ Redo Crriey Cut Ctrlex Copy cree Paste Ctriev Duplicate CtrleD Delete Shift+Del Frame Selected F Find Cirle Select All Cris, Preferences. Play CtrkeP Pause Cirle Shift+P Step Cirle Alt P Load Selection » Save Selection » Project Settings » Render Settings Network Emulation » Graphics Emulation » Snap Settings. * Undo per annullare le modifiche effettuate (utile se per sbaglio cancelliamo qualche elemento del nostro progetto). Redo per ripristinare le modifiche annullate con Undo. Cut, Copy e Past rispettivamente per tagliare, copiare e incollare un determinato oggetto 0 file. Duplicate per duplicare un oggetto o file. Delete per eliminare un oggetto o file. Frame Selected per la visualizzazione centrale dell oggetto selezionato. Find per trovare 'oggetto che riporti il nome con cui abbiamo effettuato la ricerca. Select All per selezionare tutti gli oggetti presenti nella scena. Preferences per impostare le preferenze delle impostazioni su Unity (guarda in seguito). Play, Pause e Step rispettivamente per emulare e mettere in pausa il gioco, come spiegato in precedenza. + Project Settings per settare le impostazioni del progetto (ad esempio la grafica, la qualita, etc.; sar& spiegato nei prossimi volumi). + Render Setting per impostare i parametri di rendering del progetto (come ad esempio la nebbia, la luminosita, etc.). * Network Emulation serve solamente se si intende fare un gioco multiplayer, per il momento omettiamo quest’opzione. * Graphics Emulation per impostare il DirectX che il gioco usera (8 consigliabile non utilizzare quest’ opzione). Ora vediamo cosa ci offre il menu GameObject: Create Empty irisShire Create Cther >] Particle Sytem camera GulTet GulTecuie aDTet Center On Chitsren Mace Potent Ceathatent ‘Apply Changes To Prefab Break Prefab instance Directional Light Point Light Move Te View crteateer Spotlight ‘Align With View Chile Site ‘ees Light Align View to Selecrea cue Sphere Capzule Cinder Plane Cloth ‘Asio Reverb Zone Ragdoll Tree ‘Wind Zone * Create Empty per creare un oggetto completamente vuoto. * Create Other per creare uno dei seguenti oggetti presenti gia in Unity (vedremo nei volumi successivi). Con questo abbiamo concluso per quanto riguarda l'approfondimento delle voci che ci interessano di pit e che maggiormente utilizzeremo. Attenzione: alcune voci, non ritenute fondamentali, sono state omesse da questa disamina. & importante, invece, che memorizziate le funzioni associate alle voci oggetto della trattazione. Tramite le preferenze possiamo impostare determinate caratteristiche di Unity, come ad esempio il colore dei caratteri, della griglia, ete. Andiamo a esaminarle piit nel dettaglio. PRO TIPS: potete giungere alle preferenze tramite il percorso Edit > Preferences. cruel) Una volta aperta la schermata delle preferenze, possiamo subito notare le cinque diverse categorie. Occupiamoci della prima: in General possiamo apportare modifiche generali per quanto riguarda il software, quindi ci saranno voci che non rientrano in altre categorie. © Con Auto Refresh indichiamo a Unity Paggiornamento automatico dei file del nostro progetto; mettendo la spunta su questa voce esso si aggiornera automaticamente. In caso contrario, introducendo nuovi file, dovremmo aggiornare manualmente Unity (CTRL + R). PRO TIPS: con aggiornare non intendiamo l'aggiornamento a una nuova versione del software, ma Taggiornamento delle cartelle del nostro progetto nel caso avessimo inserito del nuovo materiale * Con Ahvays Show Project Wizard indichiamo se all’avvio Unity ci chiedera di creare un nuovo progetto oppure aprire un progetto gia creato (proprio come abbiamo fatto alle prime pagine di questo volume). Spuntando questa voce, ad ogni avvio ci verra mostrato il nuovo progetto in wizard, in caso contrario si aprira l'ultimo progetto da noi modificato. * Con Compressed Assets on Import indichiamo se comprimere gli oggetti importati. Mettendo la spunta su quest’opzione, otterremo la riduzione delle dimensioni degli oggetti importati (oggetti 3D, texture o suoni) e la conseguente diminuzione di qualita. In caso contrario la dimensione restera_ invariata e la qualita sara ottima. * Con Editor Analytics indichiamo linvio da parte di Unity (in forma anonima) dei dati sull'utilizzo del software (ad esempio quando tempo lo utilizziamo, cosa stiamo creando, etc.). Non mettendo la spunta non verranno inviati dati. Con Show Assets Store search hits abbiamo la possibilita di indicare a Unity di effettuare ricerche nello shop (negozio in cui potremmo acquistare degli oggetti) qualunque oggetto inserito nell'editor di ricerca. In caso mettessimo la spunta allora esso cerchera nel negozio, in caso contrario non sara effettuata la ricerca. Con Verify Saving Assets indichiamo se il software dovra salvare individualmente ogni oggetto oppure effettuare il salvataggio totale. In questo caso & consigliato non toccare quest ‘opzione. Con Skin possiamo modificare il colore della skin (0 layout) di Unity, sfortunatamente quest opzione funzionera solamente per chi avra acquistato la versione PRO del software. PRO TIPS: le skin disponibili saranno solo in nero e in bianco. Conclusa l’analisi della voce General, selezioniamo sulla sinistra External Tools e vediamo cosa ci viene mostrato: Con External Script Editor indicheremo quale programma verra usato per la parte scripting, in questo caso Unity offre un software gratuito chiamato MonoDevelop (installato insieme ad Unity) quindi é preferibile non modificare quest’opzione. Con Editor Attaching indicheremo che durante il Debugging (funzione con la quale il software controller se ci sono errori), sia mostrata, all'interno dell editor di script, la collocazione di eventuali errori, Nel caso mettessimo la spunta esso ci indichera dove si trovano gli errori, in caso contrario non verranno mostrati. Con Image Application indicheremo quale applicazione dovra essere utilizzata per aprire i file immagine. In questo caso & preferibile non modificare questa voce. Con Android SDK Location indicheremo in quale percorso saranno disponibili gli SDK per la creazione di giochi per Android. Con iOS Xcode 4.x support indicheremo se il nostro gioco sard compatibile con la versione iOS indicata. Cliccando sulla voce Colors si apriranno le impostazione dei colori, con cui rendere pid vivace il nostro software. er Come possiamo vedere dallimmagine abbiamo unito alcuni colori con Yeditor per mostrare quali tonalita possano da subito esser cambiare. Ad esempio il colore del backgroud dell’editor 3D, il colore dalla griglia, i colori degli assi X, Y, Z e molto altro Cliccando sulla voce Keys, invece, possiamo impostare le sequenze di tasti che attivano i vari comandi in Unity. Covey coin Sees See ae ae Rea erre cL) ae ceo cee Eire! Geer Geo ieee Geers Geen Wee Be Per finire, non ci rimane che analizzare la voce meno utile delle preferenze di Unity, ovvero il Cache Server. * Con Use Cache Server indicheremo se Unity dovra utilizzare le cache del server a cui é conness per giochi multiplayer). * Con IP Address indicheremo a quale indirizzo IP Unity dovra leggere i Cache. Abbiamo appreso l'utilizzo delle preferenze su Unity. Le possibilita di personalizzazione non si esauriscono certo qui, come vedremo. Nel caso lattuale Layout di Unity possa sembrarci non efficiente, potremmo modificarlo a nostro piacimento, quindi posizionare le varie “schede” nella collocazione a noi pitt congeniale. Gisono due possibilita di personalizzazione: il metodo automatico ¢ il metodo manual Metodo automatico Cliechiamo su Window — Layouts. Nest Window tris Tab Previous Window CtreShifteTab Layouts >| 2bys Scene Cte ae Game ctaez a Inspector Cte ee Hierarchy Cte a Project Cte Save Layout: Animation cts DeleteLeyout, Profiler custo? Revert Fectory Settings Acct Store Cte Asset Server cts Animator Lightmapping Occlusion Culling Navigation Console ChleShiftec Come possiamo vedere dall’immagine, su “Layouts” saranno disponibili cinque layout automatici, esaminiamoli singolarmente. I1primo che verra riportato sara il 2 by ; Sulla parte sinistra verra riportato in alto leditor 3D e in basso la visualizzazione camera. Sulla destra troveremo la gerarchia, la cartella del progetto e inspector. Tsecondo sara il 4 split: Questa tipologia di layout 8 abbastanza confusa, comunque sulla parte sinistra abbiamo quattro una che visualizza 'asse X e Y, una che visualizza 'asse Y e Z, una che visualizza l'asse alizza Passe X, Y, Z. Sulla destra troviamo la gerarchia, la cartella progetto e l'inspector. ult, ovvero quello che comparira al primo avvio di Unity La quarta tipologia é il Tall: Sulla sinistra sara posizionato l'editor 3D, con la linguetta per la visuali: i imera, e sulla destra avremo la gerarchia, la cartella progetto e linspector. Come quinto e ultimo layout automatico abbiamo il Wide: Layout classico, che personalmente utilizzo molto. Nella parte alta dello schermo abbiamo I’editor 3D con la linguetta per la visualizzazione camera, nella parte bassa troviamo la gerarchia e la cartella del progetto, invece nella parte destra troviamo inspector. Questi sono i Layout automatic, passiamo adesso ad affrontare il metodo manuale. Metodo manuale T metodo manuale é anche considerato il “metodo classico”, attivabile utilizzando il trascinamento. Con il cursore del mouse dirigiamoci sopra la “linguetta” di uno dei componenti e, tenendo premuto il ta sinistro del mouse, trasciniamo il componente nel luogo dove desideriamo inserirlo. Per quanto concerne le modifiche al Layout é tutto, Nel prossimo capitolo ci oceuperemo della “Console” di Unity. Prima di tutto, cos’é la “console” e dove si trova? La console mostra i messaggi, errori, avvisi o messaggi di Debug provenienti dal nostro gioco. Possiamo definire la console come un vero e proprio strumento da programmatore, poiché con essa potremo verificare i vari errori e correggerli, oltre ad accertare il corretto funzionamento di un oggetto (Object) oppure di uno script. Cisono due tipi di Console, la console micro (0 label di console) e la console macro (0 console window). La prima, ovvero la console micro, si affaccia direttamente nel layout di Unity. Potreste giustamente domandarvi perché, se compare nel layout, non é cosi visibile. Dove si trova? Perché non ne abbiamo parlato in precedenza? La console micro si trova all'estremita inferiore di Unity. Nonostante la scarsa visibilita, la console micro @ esattamente la barra nera indicata dalle frecce ros: Quella che vediamo nell'immagine @ la classica console senza alcun riferimento, ovvero compare come una barra completamente nera quando non ha nulla da segnalare, e sta a significare che tutto procede correttamente e non ci sono errori che possano compromettere il nostro videogame. Ora vediamo invece qual 8 e come raggiungere la console macro. Gi sono tre metodi: il primo consiste nel doppio click con il tasto sinistro del mouse proprio sopra la console micro (precisamente sopra la barra nera). Come alternativa possiamo cliccare su Window — Console. Oppure, come terzo e ultimo metodo, @ possibile utilizzare la combinazione dei tasti rapidi CTRL + SHIFT +C. Vediamo ora laspetto della console macro. Questa finestra si mostra come una semplice schermata nera (o grigia, dipende dalla versione attualmente in uso di Unity). Sulla parte alta possiamo trovare diverse etichette: Clear, per pulire la console dai vari messaggi o errori. Collapse, nel caso ci fossero pit errori simi, essi verranno mostrati solo una volta. Clear on Play, per pulire la console ogni volta che faremo emulare il gioco con il tasto Play. Error pause, con il quale verranno messi in pausa eventuali script utilizzati per il controllo della console (come ad esempio Debug.LogError() ); non saranno pit riportati nella console, ma solamente nella sessione attiva del gioco. Open Editor Log, con il quale verra aperta una finestra con l'editor predefinito sul computer (come ad esempio il classico Blocco Note o Notepad) e vi saranno riportate le informazioni sui vari “Log” della console. La finestra in questione, che verra aperta quando utilizzeremo il tasto Open Editor Log, sara allincirca come nellimmagine seguente: UCENSE SYSTEM [201352 18:21:57] Failed to verty signature LICENSE SYSTEM [201352 18-21-57] 00959-OEW-9017486-15579 Batchiklode: 0, stumanControlingUs: 1, Siarf8uoReporterOnCrash 1, shouldGiveDebuggerChanceToAtach: 0 Intiakze mono Mono path(0] = 'C/Program Files (x86)Uniy/Editor’DatalManaged Mono pathjt] = 'C:/Progran Files (86) UnityiEdtor’DetalManalis’mana’2 0 Mono path(2] ='C:/Program Files (x86)/UntylEdtor/DatalUnityScrint Using moneOptions ~debuoger-agent=transpo |sTimeToCheckForNewEdior Update time 1967608195 current 1987511718 LICENSE SYSTEM [201352 18-21-58] Opening htips:ilicense unty3d comiupdatelpoll?emd=28ix_ki=ted6gesta4saesbasbtesasbsc: LICENSE SYSTEM [201362 18 21 88] Posting <1o0t= 610«/OperatingS ystemNumerie>Intel(R) Gare(TW) 7-2630¢ 2.00GH2~/ProcessorType> 1995«ProcessorSpeed> 8 (Computer\ame=FRANCESCO-PC=/ComouterName> Feature Value="8"> In questo file saranno riportate aleune informazioni del sistema (ad esempio i componenti del nostro PC) e anche molte informazioni utili ai fini di programmazione. Abbiamo appena visto i tipi di console ¢ le modalita per visual mostrati i vari errori e come risolverli. arle. Adesso vediamo come ci verranno Errori e segnalazioni Nella console, sviluppando progressivamente il nostro gioco, potranno comparire diversi errori, che possono variare da semplici segnalazioni a veri e propri problemi che ci impediranno addirittura lemulazione del gioco nel caso in cui non li risolvessimo. Nel primo caso, le segnalazioni non sono problematiche, possiamo anche momentaneamente trascurarle, poiché potremmo emulare il gioco senza risolverle, perd & sempre opportuno soffermarsi su quando viene indicato: da semplici segnalazioni potrebbero variare e diventare grossi problemi, man mano che inseriamo nuovi script o oggetti correlati a cid che ha originato la segnalazione. Con un semplice esempio possiamo capire meglio. Ipotizziamo che nella mappa inserisca un file audio, per sbaglio perd climino dalla cartella il file audio inerente, quindi nella console apparira una scritta gialla (tipica segnalazione) che ci segnalera che il file non 8 stato trovato. Successivamente, sempre in via ipotetica, inseriamo uno script correlato al file audio, ad esempio vogliamo che dopo tre second il file audio parta: la console ci mostrera allora un errore rosso, poiché anche lo script ora é “corrotto” e non potra funzionare. Nel primo caso la scritta sar rossa, ma il gioco potra essere comunque emulato, nel secondo caso, invece, la scritta sar sempre rossa, ma premendb il tasto Play il gioco non partira. Attenzione peré a non confondere gli errori (rossi) con le segnalazioni (gialle). | Esempio di segnalazione | Una volta scaricato ed installato Unity, nel caso si disponga di un s che la console mostri questa segnalazione: Tradotto significa: “Nella tua installazione di Windows a 64 bit non & presente un importante patch di service pack”. In altre parole nel nostro PC non @ installato un pacchetto che consente la stabilita di Unity, senza il quale esso potrebbe anche non funzionare correttamente, quindi potrebbero causarsi bug, crash (chiusura improvvisa del software), etc. Per risolvere il problema colleghiamoci nel seguente indirizzo: http://support. microsoft.com/kb/976038. Scarichiamo la patch, installiamola e riavviamo il nostro PC. Successivamente la segnalazione non dovrebbe pid comparire Nel caso non volessimo installare al momento la patch e volessimo solamente provare Unity, vediamo come ancellarla dalla console. Faeciamo doppio click sulla segnalazione, successivamente si aprira la console macro che avra quest’aspetto: tema a 64-bit, @ estremamente probabile oe or ee eee cee ar ee eet ea Patents eee eerste en Possiamo osservare che @ apparsa la segnalazione che precedentemente vedevamo nella console micro; clicchiamo sulla linguetta Clear e cancelleremo la segnalazione. PRO TIPS: allestremit’ inferiore della console possiamo notare la scritta “Assert in file..”. Qui sara segnalato il percorso del file ove si verifichera Tinconveniente, quindi, nel caso quest'ultimo fosse causato da un nostro file seript, potremmo seguire il percorso e risolvere manualmente il problema, PRO TIPS 2: ogni volta che chiuderemo e riapriremo il nostro progetto, la segnalazione riapparira finché non la risolveremo in modo permanente. Esempio di errore Abbiamo appena visto una semplice e pid che comune problematica riportata dalla console, ma adesso proviamo a vedere un esempio di problema, di errore che mini la funzionalitd del gioco: ee eee expected, Insert a semicolon at the end Toa coe ee eee eee) eee eee! In questo caso, possiamo vedere che, a fianco della segnalazione, ¢ apparso un segnale rosso (nel caso della segnalazione il segnale @ giallo) che sta a significare che si tratta di un errore che deve essere corretto. Rispetto all’eventualita vista in precedenza, in cui la segnalazione consisteva in una stringa di testo in inglese, in questo caso possiamo osservare la comparsa di un codice di riferimento. Esso significa che nel file che si trova nella cartella del progetto /Script/Meniy/tilt lucijs 8 contenuto il fatidico errore. Per individuarne lesatta collocazione non potremmo controllare tutto il file, che potrebbe essere di dimensioni considerevoli; qui Unity ci viene in soccorso. Sul fianco del percorso segnalato dalla console, dentro alle parantesi tonde, possiamo vedere due numerazioni, in questo caso 9 e 27. Tl primo numero sta a significare la riga in cui si & verifica lerrore, la seconda cifra segnala il numero della lettera esatta in cui si verifica il problema. Ecco un esempio pratico per comprendere meglio la segnalazione. Scriveremo in tre colonne le prime lettere dell’alfabeto, ma in una colonna inseriremo volontariamente una lettera sbagliata e successivamente vedremo come trovare la posizione esatta del problema. ABCD EFYH ILMN L’errore in questione @ segnalato indicando nelle parentesi le cifre (2,3), ovvero la seconda riga e la terza lettera della frase. 1. ABCD SFYH < la Y é la terza lettera della frase. 3. ILMN Ora che abbiamo compreso come trovare Terrore, dobbiamo vedere come risolverlo, Abbiamo due possibilita. La prima fare doppio click sul messaggio d’errore, successivamente si aprira la pagina dello script ove si & verificato lerrore. I] secondo metodo invece é aprire manualmente il file di script seguendo il percorso citato dalla console. Nel caso provassimo a cancellare l'errore cliccando su Clear non otterremo alcun risultato, gli errori non possono essere cancellati e trascurati come é possibile fare con le segnalazioni. Proviamo ora ad avviare lemulazione del nostro gioco senza aver risolto il problema, vedremo che sullo schermo comparira il seguente messaggio: Tne ese ue Tradotto significa “Tutti gli errori di compilazione devono essere risolti prima di entrare in playmode (modalita di emulazione)”. Quindi, come spiegato nel PRO TIPS precedente, con questa tipologia di errori non @ possibile emulare in aleun modo il gioco finché non risolviamo il problema segnalato. Altra tipologia di segnalazioni Oltre alle segnalazioni e agli errori c’8 una terza tipologia di messaggi che pud apparire nella console, ovvero i “messaggi di avvertimento”. Questa tipologia viene rappresentata da semplici messaggi di colore bianco che servono esclusivamente per informarci che una determinata azione si sta svolgendo, senza riflessi di alcun tipo nell’esecuzione del gioco. Con un semplice esempio possiamo capire meglio. Come possiamo vedere, il messaggio sta a indicare che nella scena sono presenti tre tracce audio, quindi, per evitare cali di framerate (rallentamenti), dobbiamo verificare che ci sia solamente una sorgente che poss ascoltare queste trace audio, intendendo, con questa, il Player. Se facciamo doppio click su questo messaggio, e apriamo la console macro, possiamo notare una particolarit abbastanza disturbante, ovvero la creazione di infiniti messaggi. OO Avviando Temulazione con il tasto Play, appariranno tantissimi messaggi identici, interrotti solamente quando termineremo lemulazione del gioco (ripremendo il tasto Play). Per evitare che, oltre a questi identici messaggi di informazione, se ne creino altri, premiamo la linguetta Collapse che ci consentira di verificare la presenza di altri messaggi, errori o segnalazioni div POM cc pear Eraser) Cuore ono e ensure there is always exactly one audio listener in the scene. Si In questo caso possiamo vedere che nella console @ stato riportato solamente il messaggio visto in precedenza, e sono stati creati per la precisione cinquantadue messaggi identici dall'nizio dell’emulazione fino al termine di quest’ultima. PRO TIPS: il numero esatto di segnalazioni, problemi o messaggi identici che sono stati riportati nella to alla destra del messaggio che compare cliccando sulla linguetta Collapse. Come ultima cosa, riguardando i messaggi, @ importante sottolineare che non tutti questi ultimi possono essere risolti in modo che non riappaiano pid nella console, quindi ci dobbiamo armare di un po’ di pazienza e opportarli o trascurarli. Per questo primo volume siamo pronti infine per oceuparei a grandi linee del Layout di MonoDevelop. iamo con spiegare cos’ MonoDevelop: si tratta del software con cui creeremo i nostri file di scriptin; MonoDevelop ¢ gid preinstallato in Unity, quindi possiamo rimanere comodi e non installare altri software esterni (come ad esempio compilatori come DevC++ e molti altri). Vediamo ora come aprire il programma, abbiamo due possibilita. La prima é andare nella cartella: c:\Program Files \Unity\Monodeveiop (in caso di un sistema operativo a 32 bit) oppure nella cartella: rogram Files (x86) \Unity\™ obevelop (in caso di un sistema operativo a 64 bit) e fare doppio click sul collegamento, come mostrato nell immagine: EWU Adins date te fb MonoDevelop Altrimenti, il metodo pia tradizionale consiste nel creare un file di scripting direttamente in Unity e aprirlo facendoci doppio click sopra, ma questo sar§ approfondito nei prossimi volumi. Ora che abbiamo aperto il MonoDevelop ci troveremo di fronte a una schermata del genere: eelx 908s BOS a om TBR OZGO lam Gero we cae *[ Beietere Forse immagine non & sufficientemente esplicativa, quindi consiglio vivamente di aprire il software come citato in precedenza. Il Layout di MonoDevelop @ abbastanza semplice. Appena apriamo il software ci verrd mostrata la schermata “Welcome”. Nel caso non venisse mostrata, & possibile farla comparire premendo i tasti di scelta rapida ALT + 1 oppure andando su Windows —> Home, in alternativa con View Welcome Page. LD sation Support Links BOSS MoncDevetop Home Page Repo ay Recent Projects Development Links SON ius Lay Rafence one Documentation Liber News Links MoneDevlap 26 Bett eased MoneDevelap26 Seto? Reseed Nnsbene 28? ber esed wh oe ewe es wae ober In questa schermata verranno raffigurati solamente dei collegamenti, come ad esempio i progetti recenti e varillink per il supporto tecnico, per segnalare un bug, ete. Vediamo ora come creare un nuovo file di script per Unity. Abbiamo due strade: la prima andando su File + New — File. & Open, Ctl-O FF) Solution... Cte Shfte N G sue cies|__ Workspace. GB saess... cumsnines @ sweat G keven Recent Fits > RecentSolutions 1) star New Solct ‘lose Soktion BS Open Sctution: % Close cuew 9 Quit athe Recent Projects La seconda, direttamente da Unity, andando su Create e successivamente selezionando il linguaggio con cui sidesidera creare i file di script. Create Folder Show in Brpover ‘open Javascript C2 Senpt Boo Script Import New Azzet Shader Delete Import Package Compute Sheder Ergort Peckage nab Find References Sc Select Dependencies Material ‘animation Refresn Cubemap Reimport Lane lave Custom Font Render Teture Physic Material culskin Animator Controller Avatar Body Mask vater Skeleton Mask Reimport A ‘Sync MonoDevelop Project Nel primo caso si aprira una finestra che avra quest’aspetto: boc Unty srt te Mac cenit Saige Nune Tet Temeating @ shoe Unity Wwe Unity egt Mt Nome (2) Add to projec: [Aecembly-CSharp Path: | C\UseraUterte\Documents\lexion! Sulla sinistra @ selezionata di default Vetichetta Unity poiché il software comprende che é nostra intenzione creare uno script proprio per Unity, quindi trascuriamo le altre etichette e vediamo cosa viene mostrato sulla destra. PRO TIPS: con MonoDevelop @ anche possibile creare file o script per altri sistemi, infatti, come mostrato nelle etichette, @ possibile creare file XML, file per il Web, etc. NelVetichetta Unity, sulla destra, vengono riportate alcune tipologie: 1, Boo Unity Seript 2. C# Unity Seript 3. Shader 4. Unity Script Quattro diciture che identificano quattro diversi linguaggi di programmazione che Unity supporta; nel caso venisse creato uno script con un linguaggio diverso esso non funzionera. PRO TIPS: Unity supporta anche i file con estensione XML, questi ultimi possono essere utilizzati per seopi esterni e non per scripting, ad esempio possono essere impiegati per la creazione dei salvataggi allinterno del gioco e dei caricamenti tra i vari livell Suecessivamente selezioniamo un linguaggio tra i quattro (4), nel nostro caso sceglieremo il linguaggio C#, poi in basso inseriamo il nome che vogliamo dare al nostro file (2), scegliamo inoltre la cartella dove vera creato il file di script (3) e infine clicchiamo su New (4). CE Unity Script Creates 2 new C# script For Unity. eau otk Mise uni Tet Teplatbig Shader Uy web xu, Boo Unity Sept Q Uniy Saige a) [7] Ade to project | ASsemby-Csharo Path: | C\Users\Utente\Decumentslezioni Browse. Ora che abbiamo generato il nostro file, possiamo trovarlo direttamente nella cartella selezionata in fase di creazione. Andando su Users/Utente/Documents/lezioni troverd il file di scripting in questione: & file di prova.ce Possiamo notare adesso che la schermata all interno di MonoDevelop @ cambiata. Ora ver mostrata una nuova finestra con allinterno delle stringhe di codice che andremo ad analizzare nei volumi futuri. Come in Unity, anche in MonoDevelop é possibile modificare a piacimento il Layout, con il metodo manuale o con il metodo automatico. Metodo Manuale Con il metodo manuale @ possibile prendere uno dei vari componenti che troviamo allinterno del software e trascinarlo per poi posizionarlo dove vogliamo. Fle Edt View Sach Pea Buld fun VesionContol Toos Window Hap SAIS e 1s SO 8S |G HH ms om : a =* 1 Soltion Peluso The Cro © Assemby-CSharp wo set fle provacs © Assenby-CShaetst, © Assent 1 Asem Unite 1 Asenbly Unity Come possiamo vedere dallimmagine, quando trasciniamo un componente del Layout appare un rettangolo blu che ci indica il possibile posizionamento di quanto stiamo trascinando. Scelto il punto che preferiamo per I'nserimento del componente, rilasciamo il tasto sinistro ed esso si posizionera nella zona seleziona E anche possibile “separare” un componente dal software, cosi da farlo diventare una nuova finestra autonoma: Dae File Edit View Search Project Bul Run Version Control Tools Window He 8 He Bea H 12 Fae = oe 15 Solution Preluio- The Croa| 5 Assemby-CSharp 1B References te Asees filed proves (B Assembly-CSharp-festpa B Assembly-UnitySeript IF Assembly-UnityScript-Eal |W Assemely-UnitySeript fi Metodo automatico Nel metodo automatico possiamo selezionare uno stile di default di MonoDevelop, cliccando direttamente su View e scegliendo uno dei cinque stili di default. Solution Visual Design Debug Unit Testing ch New Layout = Delete Current Layout Glistili che troviamo sono: 1. Default (stile base) 2. Solution 3. Visual Design 4. Debug 5. Unit Testing Non proseguiamo a spiegare altro per quanto concerne il Layout di MonoDevelop, poiché il software ci servira solamente per la composizione dei file scripting e programmazione. Abbiamo comunque analizzato aspetti importanti e propedeutici per i prossimi livelli del corso. Per questo primo volume di Unity 3D é tutto, vi do appuntamento al prossimo ebook dove impareremo a creare un ambiente 3D e a inserire audio e punti di luce!

You might also like