https://github.com/Shabalakko/AR-TEST/releases/tag/APK
Applicazione di realtà aumentata per l'ispezione e la gestione di macchinari industriali, costruita con Unity AR Foundation e XR Interaction Toolkit.
Questo progetto è sviluppato con:
Unity 6000.4.4f1 (Unity 6 LTS)
Assicurati di aprire il progetto esattamente con questa versione per evitare problemi di compatibilità con i package AR Foundation e XR Interaction Toolkit.
L'applicazione utilizza la fotocamera del dispositivo per il tracciamento AR.
Al primo avvio, il sistema mostrerà una finestra di dialogo che richiede l'accesso alla fotocamera. Devi premere "Consenti" per poter utilizzare le funzionalità AR.
Se hai negato l'autorizzazione per errore:
- Vai su Impostazioni → App
- Trova l'app nell'elenco
- Vai su Autorizzazioni → Fotocamera
- Imposta su Consenti
⚠️ Senza il permesso fotocamera l'app non funzionerà.
Il menu di creazione oggetti è stato implementato per supportare macchine multiple.
Come si usa:
- Premi il pulsante Crea in basso al centro per aprire il menu.
- Nel pannello scorrevole trovi i bottoni delle macchine già salvate e un pulsante "+" per aggiungerne una nuova.
- Tocca il pulsante "+" per aggiungere una nuova macchina alla lista.
- Seleziona una macchina dalla lista per attivarla: il sistema prepara lo spawner.
- Tocca una superficie AR rilevata per posizionare la macchina nella scena.
Una macchina già posizionata disabilita il suo pulsante nel menu finché non viene eliminata dalla scena.
Ogni voce del menu ha un pulsante Rinomina (icona ""..."").
Come si usa:
- Apri il menu e premi il pulsante Rinomina accanto alla macchina desiderata.
- Si apre la tastiera di sistema: digita il nuovo nome.
- Il nome sul bottone si aggiorna in tempo reale mentre scrivi.
- Conferma con il tasto "Invio" o chiudi la tastiera: il nome viene salvato automaticamente.
Se lasci il campo vuoto e chiudi la tastiera, viene ripristinato il nome predefinito (es. "Macchina 1").
Quando una macchina viene selezionata nella scena AR, viene applicato automaticamente un effetto di evidenziazione visiva (Rim Lighting / overlay ologramma).
Come funziona:
- Seleziona una macchina toccandola: appare un alone luminoso attorno al modello 3D.
- L'effetto è gestito dal componente
MachineHighlighterpresente sul prefab della macchina. - Funziona su modelli multi-materiale e multi-mesh complessi.
- Quando deselezioni (tocchi un'altra area), l'effetto si spegne automaticamente.
Il materiale di highlight è configurabile nell'Inspector del prefab tramite il campo
Highlight Material.
Ogni voce del menu ha un pulsante Elimina (icona cestino).
Come si usa:
- Apri il menu e premi il pulsante Elimina accanto alla macchina.
- La macchina viene rimossa dalla lista e, se era già stata posizionata nella scena AR, viene anche distrutta dalla scena.
- I dati della checklist associati a quella macchina vengono cancellati dal disco.
- Le macchine successive vengono automaticamente re-indicizzate senza perdere i propri dati.
I nomi delle macchine vengono salvati automaticamente sul dispositivo tramite PlayerPrefs.
- Al prossimo avvio dell'app, le macchine precedentemente create vengono ripristinate con i loro nomi personalizzati.
- Non è necessaria nessuna azione da parte dell'utente: il salvataggio avviene in background ad ogni modifica.
Quando una macchina è selezionata nella scena AR, compare il pulsante Checklist.
Come si usa:
- Posiziona e seleziona una macchina nella scena (toccala).
- Premi il pulsante Checklist che appare nell'interfaccia.
- Si apre un pannello con la scheda di ispezione della macchina, generata automaticamente dal file CSV
Scheda_01. - Spunta i parametri controllati e premi Salva per salvare i dati.
- La checklist di ogni macchina è indipendente: ogni istanza ha il proprio file di salvataggio.
I dati vengono salvati in formato JSON nella cartella
persistentDataPathdel dispositivo e sopravvivono ai riavvii dell'app.
Quando una macchina viene selezionata nella scena AR, viene applicato automaticamente un effetto di evidenziazione visiva (Rim Lighting / overlay ologramma).
Come funziona:
- Seleziona una macchina toccandola: appare un alone luminoso attorno al modello 3D.
- L'effetto è gestito dal componente
MachineHighlighterpresente sul prefab della macchina. - Funziona su modelli multi-materiale e multi-mesh complessi.
- Quando deselezioni (tocchi un'altra area), l'effetto si spegne automaticamente.
Il materiale di highlight è configurabile nell'Inspector del prefab tramite il campo
Highlight Material.
| File | Descrizione |
|---|---|
ARTemplateMenuManager.cs |
Gestore principale: menu dinamico, highlight, spawn, checklist |
ReportManager.cs |
Caricamento CSV, generazione UI checklist, salvataggio/caricamento JSON |
MachineHighlighter.cs |
Effetto visivo di selezione (overlay ologramma) |
I modelli 3D dei macchinari utilizzati nell'applicazione sono stati ottimizzati manualmente in Blender prima dell'importazione in Unity, al fine di garantire prestazioni fluide su dispositivi mobili.
Le principali operazioni effettuate includono:
- Riduzione del numero di poligoni (Decimate) — la geometria è stata semplificata eliminando i dettagli non visibili in AR, mantenendo la fedeltà visiva del modello.
- Pulizia della mesh — rimozione di vertici doppi, facce interne non necessarie e geometria non manifold che potrebbe causare artefatti visivi o rallentamenti.
- Ottimizzazione dei materiali — riduzione del numero di slot materiale per minimizzare i draw call su mobile, fondamentale per mantenere un frame rate stabile.
- Correzione della scala e delle rotazioni — i modelli sono stati allineati agli assi corretti e la scala applicata (
Apply Scale/Rotation) prima dell'esportazione in formato.fbxper Unity.
Queste ottimizzazioni sono fondamentali su dispositivi AR: un modello non ottimizzato può causare cali di frame rate significativi, specialmente in combinazione con il tracciamento AR in tempo reale.
- Target platform: Android (API Level 24+) (in realtà ho testato anche su versioni più vecchie di android, sia di OS che di CPU. Dovrebbe funzionare lo stesso.)
- Richiede dispositivo con supporto ARCore (Android)
- Il permesso
CAMERAviene richiesto automaticamente al primo avvio