Modulo 1: C# per Unity - 32 h
Hello World
- Introduzione alla programmazione per oggetti
- Linguaggi di programmazione a oggetti
- Linguaggio C# (Storia, campi di utilizzo, ecc.)
- Ambiente di programmazione per il C#: il .NET Framework e runtime
- Creazione di un progetto di base (Console Application)
- Dichiarazione e definizione delle variabili
Basi di programmazione
- Regole di scrittura dei programmi, la sintassi C#
- Introduzione alle stringhe
- Funzionalità delle stringhe
- Operatori matematici
- Algebra booleana
- Programmazione condizionale (if, else, switch, ...)
- Cicli iterattivi (While, For, Foreach, ...)
Strutture dati
- I vettori
- I vettori bidimensionali (matrici)
- Altre strutture di dati (liste, dictionary)
- Preinserimento di caratteri (namepace)
- Introduzione agli attributi
Introduzione all’OOP (Object Oriented Programming)
- Tipo di valore vs Tipo di riferimento
- Struct
- Classi
- I costruttori
- Tipi di costruttori
- Creazione dei metodi
Classi, membri e visibilità
- Modificatori di accessi
- Metodi con accessi limitati (static)
- Modifica di metodi (overloading)
- Eseguire il progetto
- Gestione degli input/output
Ereditarietà
- Concetto di ereditarietà. Utilità ed esempi di utilizzo
- Classi di base e classi derivate
- Metodi senza implementazione (astratti)
- Metodi ereditati
- Modifica delle dichiarazioni dei metodi (virtual)
- Overriding di metodi virtuali in sottoclassi
C# avanzato I
- Interfacce (definizione di metodi astratti)
- Generics
C# avanzato II
Modulo 2: Unity - 48 h
Unity Editor e Component Based Programming
- Panoramica sulle potenzialità di Unity
- Analisi dei componenti di un videogame e ruolo della programmazione e degli script
- Editor: panoramica dell'interfaccia con le relative caratteristiche
- Elementi per comporre la scena e principali componenti
- Unity e linguaggio C#
- Approfondimento del linguaggio C# per Unity (I tipi di variabili e strutture dati, Le strutture di controllo, Classi, il paradigma OO, Ereditarietà, Delegate ed Eventi).
- Elementi della scena e componenti principali,
- GameObject e Component
Unity Introduzione ai Componenti e al sistema di Prefab e al 2D
- Scripting e sui componenti - Transform, Collider, RigidBody, Audiosource, Sprite Renderer
- Sistema di Prefab di Unity 2019 - Introduzione al tema
- Nested Prefab, Prefab Variants
- Sprite e Elementi 2D
Primo gioco 2D e tecniche di ottimizzazione 2D
- Materiali fisici (2D)
- Prototipazione e creazione di Pong
- Ottimizzazione per giochi 2D
Unity UI e Custom Event System
- Programmazione orientata agli eventi: Unity Events e Custom Event System
- Utilizzo e gestione dello Unity UI System
- UI best practice
- Pattern Singleton
Estendere l’Editor e New Input System Unity
- Editor Scripting
- Scriptable Objects
- New Input System Unity
Tecniche avanzate di programmazione
- Presentazione di alcuni design pattern all’interno di Unity
- Ottimizzazione del codice
- Build progetto
3D, Shading, Sistema di Illuminazione e Animazione
- Importazione di modelli 3D (Asset grafici) da 3ds Max, Maya, Inventor, ...
- Introduzione ai materiali grafici
- I sistemi di illuminazione di Unity.
- Importazione di modelli 3D riggati
- Introduzione alle animazioni in Unity e lo Unity Animator
- Presentazione della Timeline di Unity per la costruzione di RealTime-Cinematic
3D Deep Dive e Character controller
- Tecniche di ottimizzazione 3D
- Studio del First Person Controller
- Studio del Third Person Controller
Particle System e Deep Dive nel motore fisico di Unity
- Introduzione
- Creazione di effetti particellari di base (fuoco, fumo, esplosioni…)
- Scripting su effetti particellari
- Best practice per l’ottimizzazione
- Raycast
- Bitmask
- Sfruttare i Layer per migliorare le prestazioni
- Simulazione di un corpo rigido utilizzano la fisica di Unity
Realtà Aumentata con Vuforia
- Download e installazione di Vuforia
- Impostazione e gestione del progetto
- Creazione di un Target Object e dello Script di riconoscimento
- Effettuare la build su dispositivo
Realtà Virtuale
- Configurazione del visore VR - Oculus Rift
- Interazione visore con Unity
- Interfaccia (UI) e interazioni in realtà virtuale con i controllers
Progetto finale dalla progettazione alla realizzazione del prototipo