Skip to content

This repository serves as a practical exercise for my Game Development Master's degree at Epicode.

Notifications You must be signed in to change notification settings

Mike014/m2-g4-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Basic Unity 3D Practice – Epicode Master — M2-G4-Lab

(Scope, Cicli, Array, Numeri Pseudorandomici)

Project Description

Questo repository raccoglie gli esercizi realizzati durante il Modulo 2 – Lezione 4 del Master in Game Development (Epicode). Il progetto è composto da semplici script C# eseguiti in Unity per consolidare i concetti fondamentali di programmazione strutturata e logica applicata al contesto 3D.

Ogni esercizio introduce un concetto chiave:

  • Scope e Lifespan delle variabili,
  • Cicli di iterazione (while, do…while, for),
  • Array e gestione di collezioni,
  • Generazione di numeri pseudorandomici,
  • e l’applicazione di questi principi in piccoli script interattivi.

Learning Objectives & Demonstrated Skills

C# in Unity

  • Comprensione dello scope: differenza tra variabili locali, di classe e variabili esposte in Inspector.
  • Utilizzo di [SerializeField] per esporre variabili private in modo sicuro.
  • Gestione del ciclo di vita di uno script Unity (Start(), Update()).
  • Creazione e gestione di array per contenere e manipolare più valori.
  • Implementazione di loop per iterare dati e controllare flussi logici.

Cicli e Iterazione

  • while: esecuzione controllata da una condizione logica.
  • do…while: garantisce almeno un’esecuzione del blocco.
  • for: utile per iterazioni con contatori e limiti precisi.
  • break e continue: gestione avanzata del flusso di un ciclo.

Esercizi: countdown, stampa di numeri pari, FizzBuzz, somma e prodotto di array, iterazioni condizionali.

Array e Collezioni

  • Dichiarazione e inizializzazione di array (int[] numeri = new int[5];).
  • Accesso agli elementi tramite indice.
  • Iterazione tramite for e proprietà .Length.
  • Evitare errori comuni come IndexOutOfRangeException.
  • Inizializzazioni rapide e assegnazioni dinamiche.

Esercizi: somma e prodotto di elementi, stampa di intervalli numerici, manipolazione di dati sequenziali.

Numeri Pseudorandomici

  • Introduzione alla classe Random in Unity.
  • Uso di Random.Range(min, max) per generare valori casuali controllati.
  • Differenza tra interi (max escluso) e float (max incluso).
  • Applicazioni pratiche: generazione di numeri vicini a un target (numberToFind ± offset).

Esercizio: creazione di un array casuale e ricerca di un numero specifico (Found / Not Found).

Debug & Console

  • Uso di Debug.Log() per visualizzare risultati, tracciare iterazioni e monitorare lo stato interno delle variabili.
  • Formattazione di stringhe interpolata ($"Value: {x}").

Problem Solving

  • Creazione di mini-algoritmi logici dentro Unity.

  • Applicazione di concetti base di programmazione procedurale e pensiero computazionale:

    • gestione di contatori,
    • accumulazione di somme e prodotti,
    • uso di condizioni per casi multipli (FizzBuzz),
    • controllo di range e limiti negli array.

How to Open (Unity 2022.3+)

  1. Clona o scarica il repository.
  2. Apri Unity Hub e crea un progetto 3D vuoto con la stessa versione.
  3. Chiudi l’editor e sostituisci le cartelle Assets/, Packages/, ProjectSettings/ con quelle del repository.
  4. Riapri il progetto.
  5. In scena, crea un Empty Object e aggiungi gli script degli esercizi come Component.
  6. Premi Play per visualizzare i risultati in Console.

Usage

  • Imposta i valori in Inspector (ad esempio: max, startNumber, arraySize, numberOffset ecc.).
  • Premi Play per osservare in Console l’esecuzione dei cicli, i risultati dei calcoli e i messaggi di debug.
  • Esperimenta modificando i parametri per comprendere meglio i concetti di iterazione, condizione e casualità controllata.

Troubleshooting

  • Errore CS0101 / CS0111: classe duplicata — rinomina file o classe.
  • Debug ambiguo: rimuovi using System.Diagnostics; oppure usa UnityEngine.Debug.Log(...).
  • Variabili non visibili in Inspector: usa public o [SerializeField] private, non entrambi.
  • Loop infinito: assicurati che la condizione del ciclo possa diventare false.
  • IndexOutOfRange: controlla che il ciclo non usi <= array.Length.

Summary

Questa lezione ha consolidato i fondamenti della logica in C# applicata a Unity:

  • strutturazione del codice con variabili, array e cicli,
  • controllo del flusso tramite condizioni,
  • e l’uso dell’Inspector per creare esperimenti pratici interattivi.

L’obiettivo finale è costruire solide basi per comprendere la programmazione dei comportamenti dinamici nei videogiochi, dove loop, array e casualità sono strumenti fondamentali per gameplay, IA e simulazioni.

About

This repository serves as a practical exercise for my Game Development Master's degree at Epicode.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages