Habemus aggiornamento! Da oggi  la nuova versione di Unity è disponibile al download (a questo indirizzo). L’ultimo aggiornamento del nostro Game Engine preferito porta con sé diversi miglioramenti e nuove caratteristiche! diamo uno sguardo alle più importanti novità di Unity 5.6.

Video Player

Nelle precedenti versioni di Unity avevamo a disposizione il componente Movie Texture, che consentiva la riproduzione di vido solo tramite Apple QuickTime.

Il nuovo componente Video Player permetterà di riprodurre video fino a risoluzione 4K senza appoggiarsi a QuickTime (consentendo così la riproduzione di video anche su dispositivi Android), sia a schermo intero che sovrascrivendo un materiale o tramite render texture!

Light Explorer

Ti è mai capitato di perdere di vista le luci della tua scena tra centinaia e centinaia di game object diversi?

Non sei il solo! In Unity 5.6 troverai una nuova finestra che risolverà questo problema: Il Light explorer consentirà di tenere sott’occhio tutte le luci della scena ed i relativi parametri, consentendo di regolarle con maggior efficienza!

Progressive Lightmapper

Il baking delle luci può estenuante per chi lavora in Unity, e per una scena complessa e con molte luci  possono essere necessarie diverse ore affinché questo venga completato.

Ancor peggio, prima di vedere i risultati del baking bisogna attendere che questo sia completato, e cambiare anche solo un parametro di una delle luci della scena comporterà il riavvio dell’intera procedura.

Hai aspettato per 4 ore per poi renderti conto che una delle tue luci è troppo… gialla? Bene, preparati ad aspettare altre 4 ore!

Il nuovo Progressive Lightmapper ci aiuterà aggiornando la lightmap mentre il baking è in esecuzione, aggiungendo dettagli man mano che i relativi calcoli vengono eseguiti. Sarà anche possibile dare priorità alla parte della scena attualmente inquadrata dalla telecamera, così da poter ridurre al minimo lo spreco di tempo in baking infruttuosi!

…Magia!

Build per piattaforme Facebook

Facebook sarà disponibile come piattaforma di sviluppo per il nostro progetto: nello specifico potremo rendere disponibile l’app per Facebook Games (come un tradizionale browser game) o per Facebook Gameroom: la nuova piattaforma di gioco destinata ai PC creata del colosso dei social network.

NavMesh System

Una NavMesh (o Navigation Mesh) è una struttura fondamentale per il pathfinding e la creazione di complessi comportamenti motori all’interno di un videogioco.

In questo aggiornamento il sistema con cui vengono gestite le NavMesh è stato completamente rivisto: adesso NavMesh e relativi agenti sono gestiti tramite dei componenti appositi, scritti tramite delle nuove API di basso livello. Tutto questo ci darà la possibilità di creare e modificare le NavMesh a runtime, o persino di salvarle all’interno di un prefab!

9-Slice Sprites

Il 9-slice scaling è un metodo che consente di suddividere in 9 parti un’immagine e ridimensionarla senza perdita di qualità, basandosi sulla ripetizione indipendente di queste 9 parti lungo la superficie interessata.

Fino ad ora utilizzato per gli elementi della UI, adesso è possibile applicare il 9-slice scaling a degli sprite: utilissimo se si vuole realizzare un progetto in 2D!

2D Sorting group

Sarà possibile ordinare dei renderer 2D appartenenti ad un unico oggetto e racchiuderli in un unico gruppo: in questo modo il gruppo verrà renderizzato insieme e si eviteranno sgradite interpolazioni con altri gruppi di renderer 2D!

Collider composito 2D

Un nuovo componente, il Composite Collider 2D, permetterà di creare dei collider 2D unici, frutto dell’unione di più collider.

Physics Debug Visualization

Un nuovo tool per il debug visuale delle collisioni fa la sua comparsa: grazie a questo sarà possibile trovare eventuali problemi con le collisioni del nostro progetto semplicemente lanciando uno sguardo alla scene view.

Saranno presenti anche delle opzioni in grado di semplificare il tutto, ad esempio nascondendo alcuni tipi di colliders o mostrando solo oggetti con dei RigidBody attivi!

GPU Instancing

Il GPU instancing permette di creare diverse istanze dello stesso oggetto effettuando un minor numero di draw calls: in parole povere, se devi realizzare un grosso insieme degli stessi oggetti (ad esempio uno stormo di uccelli, o una fascia di asteroidi) l’instancing ti permetterà di farlo risparmiando preziosissime risorse.

Benchè fosse possibile utilizzare questa feature anche in versioni precedenti, per attivarla adesso basta cliccare su un  semplice checkbox nel pannello del materiale di cui si desidera realizzare le diverse istanze.

Sì! Voglio il potere!

Supporto a Vulkan

Per chi non lo sapesse, Vulkan è un’ API grafica multi piattaforma di basso livello in grado di sfruttare al meglio le moderne GPU: ciò si traduce in performance migliori e consumi notevolmente ridotti rispetto alle librerie grafiche OpenGL.

Metal Compute Shaders

Uno shader è una parte di codice eseguita dal processore grafico (o per gli amici, GPU) per disegnare su schermo poligoni o pixel.

Sì, è una descrizione che può sembrare molto generica, ma in effetti è anche la più accurata! In origine infatti, gli shader venivano utilizzati esclusivamente per il rendering delle ombre sulla scena (da qui il nome che deriva da shade, ovvero “ombra”).

Oggi gli shader vengono ampiamente utilizzati per la creazione dei diversi materiali, o anche per creare effetti e filtri vari da applicare alla camera di gioco!

Nella vasta famiglia degli shader troviamo anche i Compute Shaders: programmi che vengono eseguiti al di fuori della normale pipeline di rendering e che fondamentalmente consentono di eseguire alla GPU algoritmi normalmente eseguiti su CPU.

In Unity 5.6 viene aggiunto il supporto a Metal Compute: i compute shaders gestiti dalla API grafica Metal made in Apple!

E tanto altro!

Per una lista completa di tutte le novità di Unity 5.6 visita questo link. Se invece sei interessato allo sviluppo di giochi multipiattaforma con Unity 3D, dai un’occhiata al mio corso gratuito.

Non mi resta che salutarti ed augurarti una buona programmazione!