Vai al contenuto

Unity Cheatsheet

Unità - Sviluppo del gioco per mobile > Unity è un potente motore di gioco cross-platform utilizzato per creare giochi e simulazioni 2D, 3D, VR e AR. Questo cheatsheet si concentra sullo sviluppo del gioco mobile con Unity. < > < > Traduzione: Traduzione: Copia tutti i comandi Traduzione: Generare PDF < > < > ## Tabella dei contenuti - [Installazione] - [Unity Editor](#unity-editor] - [Core Concepts](#core-concepts) - [Scripting with C#](#scripting-with-c) - [Physics] - [Sistema UI](_LINK_5__) - [Animation] - [Mobile Development](#mobile-development) - [Ottimizzazione delle prestazioni](#performance-optimization) - [Asset Management](#asset-management) - [Testing & Debugging] - [Deployment] - [Le migliori pratiche](#best-practices) ## Installazione ### Mozzo di unità Traduzione: ### Android Setup Traduzione: ### Configurazione iOS (solo MacOS) Traduzione: ## Editor di unità ### Finestre principali - **Scene View** Rappresentazione visiva del mondo del gioco - **Game View** Anteprima del gioco come visto dal giocatore - **Hierarchy**: Lista di tutti i GameObjects nella scena attuale - **Progetto**: Browser per tutti i beni del progetto - **Inspector**: Proprietà del GameObject o del bene selezionato - **Console**: Visualizza log, avvisi e errori ### Tastiera Scorciatoie - **Q**: Hand Tool (pan) - **W****: Move Tool - **E**: Strumento rotante - **R**: Strumento scala - **T**: Strumento di ricezione (per UI) - **Ctrl/Cmd + S ** Salvare scena - **Ctrl/Cmd + P ** Gioco di gioco/Pausa - **Ctrl/Cmd + Shift + P**: Struttura passo - **F**: Focus sull'oggetto selezionato - **Ctrl/Cmd + D ** Duplica oggetto selezionato ### Gestione dei progetti Traduzione: ## Concetti core ### GameObject - Gli oggetti fondamentali in Unity che rappresentano personaggi, oggetti di scena, paesaggi, telecamere, ecc. - Un contenitore per Componenti. ### Componenti - Pezzi funzionali di un GameObject. - Esempi: Transform, Mesh Renderer, Rigidbody, Collider, Scripts. ### Componente di trasformazione - Ogni GameObject ha un componente Transform. - Definisce la posizione, la rotazione e la scala di GameObject. ### Scena - Un contenitore per una serie di GameObjects. - Rappresenta un livello, un menu, o una parte del gioco. ### Prefazione - Un GameObject riutilizzabile memorizzato nella vista del progetto. - Consente di creare, configurare e memorizzare un GameObject completo di tutti i suoi componenti, valori di proprietà e GameObjects bambino come risorsa riutilizzabile. ### Attività - Qualsiasi file utilizzato in un progetto Unity, come modelli, texture, suoni, script, ecc. ## Scripting con C# ### Creazione di uno script Traduzione: ### MonoBehaviour Ciclo di vita Traduzione: ### Componenti di accesso Traduzione: ### Gestione dell'ingresso Traduzione: ### Coroutines Traduzione: ### Gestione delle scene Traduzione: ## Fisica ### Corpo rigido - Componente che consente a GameObject di essere influenzato dalla fisica. - Per la fisica 3D. - Per la fisica 2D. Traduzione: ### Collider - Definisce la forma di un GameObject per collisioni fisiche. - "BoxCollider"... "SphereCollider", "CapsuleCollider", "MeshCollider". - # BoxCollider # "CircleCollider2D", "CapsuleCollider2D". ### Rilevamento di collisione Traduzione: ### Rilevamento dei trigger - I Colliders possono essere contrassegnati come "Is Trigger" per rilevare quando gli oggetti entrano nel loro volume senza causare una collisione. # ### Raycasting Traduzione: ## Sistema UI ### Telaio - L'elemento principale per tutta l'UI in una scena. - ** Modalità di rimborso**: spazio dello schermo - sovrapposizione, spazio dello schermo - fotocamera, spazio mondiale. ### Componenti dell'interfaccia utente - Mostra il testo. - Mostra un'immagine. - Mostra una texture. - Un pulsante cliccabile. - Una cassetta di sicurezza. - Un cursore trascinabile. - Una barra di scorrimento. - **InputField**: Un campo di input di testo. - **Panel**: Un contenitore per altri elementi dell'interfaccia utente. - ♪Scroll ♪ Visualizza**: Una vista percorribile. ### Trasformazione retta - Il componente Trasforma per elementi UI. - Definisce posizione, dimensione, ancoraggi e pivot. ### Sistema di eventi - Maneggia gli eventi di input per gli elementi dell'interfaccia utente. - Richiede un **EventSystem** GameObject nella scena. ### Pulsante Click Event Traduzione: ### Accesso ai componenti dell'interfaccia utente Traduzione: ## Animazione ### Componente dell'animatore - Controlla le animazioni su un GameObject. - Utilizza un asset **Animator Controller** per gestire gli stati di animazione. ### Controller Animatore - Una macchina statale per le animazioni. - **States**: Rappresentare animazioni individuali (ad esempio, Idle, Walk, Run, Jump). - **Trasferimenti**: Definire come muoversi tra gli stati. - **Parametri**: Variabili che controllano le transizioni (ad esempio, Velocità, IsJumping). ### Clip di animazione - Beni che contengono dati di animazione (ad esempio, keyframe per posizione, rotazione, scala). ### Controllo di Animazioni da Script Traduzione: ### Animazione Eventi - Chiamare una funzione a un punto specifico in una clip di animazione. - Aggiungi un evento nella finestra Animazione. Traduzione: ## Sviluppo mobile ### Raccolta di Platform-Specific Traduzione: ### Orientamento dello schermo Traduzione: ### Controllo touch Traduzione: ### Accelerometro Traduzione: ### Giroscopio Traduzione: ### Vibrazione del dispositivo Traduzione: ### Dati persistenti Traduzione: ## Ottimizzazione delle prestazioni ### Profilo - Uno strumento per analizzare e ottimizzare le prestazioni del gioco. - **Verde - > Analisi - > Profilo**. - **CPU Utilizzo**: Identificare i colli di bottiglia delle prestazioni negli script. - **GPU Utilizzo**: Analizzare le prestazioni di rendering. - **Memory**: Traccia le allocazioni di memoria e identifica le perdite di memoria. ### Batching - # Static Batching # Per oggetti non mobili che condividono lo stesso materiale. - ♪Dynamic Batching ♪ Per piccoli oggetti mobili che condividono lo stesso materiale. ### Culling - ♪Frustum Culling ♪ Attivato automaticamente. Gli oggetti fuori dalla vista della fotocamera non sono resi. - **Occlusione Culling**: Previene il rendering di oggetti nascosti dietro altri oggetti. ### Livello di dettaglio (LOD) - Modelli di rendering con diversi livelli di dettaglio in base alla distanza dalla fotocamera. ### Compressione della texture - Utilizzare formati di compressione della texture appropriati per ogni piattaforma (ad esempio, ASTC per Android/iOS). ### Piscina per oggetti - Riutilizzare gli oggetti invece di istantanare e distruggerli frequentemente. Traduzione: ## Gestione delle risorse ### AssetBunds - Archivi di beni che possono essere caricati su richiesta. - Utilizzato per il contenuto scaricabile (DLC) e riducendo la dimensione iniziale dell'app. ### Attività indirizzabili - Un sistema per gestire e caricare beni per indirizzo. - Semplifica la gestione e il caricamento degli asset. ### Cartella delle risorse - Una cartella speciale dove i beni possono essere caricati per nome a runtime. - Non raccomandato per grandi progetti a causa di implicazioni di performance. Traduzione: ## Test e debug ### Debug Traduzione: ### Quadro di prova dell'unità - Un framework per la scrittura e l'esecuzione di test automatizzati in Unity. - **Verde - > Generale Test Runner**. - **Edit Mode Tests**: Eseguire nell'Editor Unità. - **Play Mode Tests**: Correre nel gioco mentre sta giocando. Traduzione: ## Distribuzione ### Crea impostazioni - **File - > Costruire le impostazioni. - Selezionare la piattaforma di destinazione (Android, iOS). - Aggiungi scene alla costruzione. - Configurare le impostazioni del giocatore. ### Impostazioni del giocatore - Edit - > Impostazioni del progetto -> Giocatore. - # Nome della ditta # "Nome di prodotto", "Versione". - **Icon**, **Splash Screen**. - **Bundle Identifier** (ad esempio, com.company.product). - **Scripting Backend** (Mono, IL2CPP). - **API Compatibilità Livello**. ### Android Build Traduzione: ### iOS Build (solo MacOS) Traduzione: ## Migliori Pratiche ### Organizzazione del progetto Traduzione: ### Pratiche di codifica - Utilizzare namespaces per organizzare il codice. - Seguire una convenzione di denominazione coerente (ad esempio, PascalCase per le classi, camelCase per le variabili). - Riferimenti dei componenti Cache in `Awake` o `Start`. - Evitare di utilizzare `GameObject.Find`_ in `Update`_. - Utilizzare il pooling degli oggetti per oggetti creati frequentemente. - Ottimizzare i loop ed evitare calcoli inutili. ### Consigli sulle prestazioni - Utilizzare il Profiler per identificare i colli di bottiglia. - Utilizzare batch statici per oggetti statici. - Utilizzare LOD per modelli complessi. - Comprime texture e audio. - Utilizzare ombreggiatori appropriati ed evitare sovraccarico. - Tenere la gerarchia il più possibile piatta. --- ## Sintesi Unity è un motore di gioco versatile e potente per lo sviluppo mobile, offrendo un ricco insieme di strumenti e funzionalità per creare giochi di alta qualità e esperienze interattive. **Key Vantaggi: ** - # Cross-Platform # Costruisci per Android, iOS e altre piattaforme da un unico codebase. - **Rich Ecosystem**: Grande asset store con risorse, strumenti e estensioni pronti all'uso. - **Powerful Editor**: Editor intuitivo e flessibile per la progettazione e la costruzione di giochi. - **Strong Community**: Documentazione estesa, tutorial e supporto comunitario. **Migliori casi di utilizzo: ** - Giochi mobili 2D e 3D di tutti i generi. - Applicazioni AR e VR. - Simulazioni interattive e visualizzazioni. - Prototipazione rapida e sviluppo. **Considerazioni: - Può avere una curva di apprendimento ripida per i principianti. - L'ottimizzazione delle prestazioni è fondamentale per le piattaforme mobili. - La dimensione di costruzione può essere grande se non gestito con attenzione. Con la padronanza dei concetti fondamentali di Unity, la scrittura e le caratteristiche specifiche per dispositivi mobili, gli sviluppatori possono creare giochi mobili coinvolgenti e di successo. Traduzione: copia funzioneToClipboard() {} const commands = document.querySelectorAll("code"); che tutti iComandi = ""; comandi. per ogni(cmd => AllCommands += cmd.textContent + "\n"); navigatore.clipboard.writeText(tutti iComandi); alert("Tutti i comandi copiati a clipboard!"); # funzione generaPDF() { finestra.print(); # < >