2015-08-11 21 views
7

Sono nuovo in Unity e ho capito che è difficile fare un gioco 2d multi risoluzione su unità senza 3 plugin disponibili in Asset Store.Sviluppare gioco 2D Scaler Canvas interno

Ho fatto alcune prove e sono in grado di fare il supporto multi risoluzione in questo modo:

1- Mettere tutto da interfaccia utente (pulsanti, ecc) all'interno di un oggetto Canvas in modalità rendering spazio Schermo - Overlay con Risoluzione di riferimento 16: 9 e larghezza fissa.

2- Mettere il resto degli oggetti di gioco all'interno di un oggetto di gioco chiamato GameManager con il componente Scaler Canvas in Spazio di rendering Modalità Spazio - Fotocamera con risoluzione di riferimento 16: 9, larghezza fissa e la fotocamera principale collegata. Dopodiché, tutti gli oggetti di gioco come player, piattaforme ecc all'interno di GameManager devono avere un componente RectTransform, un componente CanvasRenderer e un componente immagine, ad esempio.

Posso continuare a sviluppare il gioco in questo modo, o questo è un modo sbagliato di fare le cose?

saluti

+0

La tela è per componenti della GUI e non creata per creare un gioco completo. Comunque cambiare la risoluzione del gioco dovrebbe andare bene, sono sicuro che puoi impostare il viewport per rimanere a 800 per 600, potrei avere qualche codifica in giro, ma dovrò controllare in seguito per te – Canvas

+0

Grazie per il tuo aiuto . Sto aspettando che il tuo codice cambi la risoluzione del gioco. – mistic

+0

Sembra che il codice che ho posto in giro ti possa aiutare qui :(il codice che ho è fondamentalmente mantenere la risoluzione di gioco lo stesso indipendentemente da cosa, anche se vanno a schermo intero, tuttavia ho trovato questo http: //gamedev.stackexchange. it/questions/79546/how-do-you-handle-aspect-ratio-differences-with-unity-2d – Canvas

risposta

2

io non ti consiglia di utilizzare Canvas Scaler per lo sviluppo di un gioco completo. Lo scopo previsto del dispositivo di scaling della tela era di creare menu e dovresti usarlo per creare solo i menu.

I giochi 2D creati senza il ridimensionatore di tela non creano molti problemi (soprattutto non causano alcun problema) su più risoluzioni.

Quindi, il passaggio 1 è corretto ma per il passaggio 2 non è necessario disporre di un componente scaler canvas collegato.

Ricordarsi di contrassegnare la scena come 2D (non necessaria) e la fotocamera su ortografica (necessaria) durante lo sviluppo di giochi 2D.

+0

Grazie per il vostro aiuto.Quali sono i problemi principali che possono causare l'uso di un dispositivo di scalabilità di tela per lo sviluppo del gioco completo? – mistic

+0

Sviluppo di un gioco di piccole dimensioni con funzioni non supperenti: lo scaler di tela non causerà alcun problema, ma in alcuni scenari come quelli che si desidera il giocatore sarà in grado di scorrere la mappa in giro trascinando semplicemente un dito sullo schermo. questo può essere un po 'difficile (non impossibile) dato che lo scaler della tela pone dei limiti su determinati oggetti da spostare in fase di esecuzione. Con "non impossibile" intendo che l'unità ha reso disponibile la possibilità di ereditare dalle loro classi di interfaccia utente ed estenderle nel modo desiderato. –

+0

Grazie per la risposta. Stai dicendo che posso avere problemi di prestazioni con quella soluzione? – mistic

5

Inoltre, non dimenticare GUI, Graphics. È un malinteso comune che GUI sia deprecato e lento. No non lo è. Gli helper di GameObject per la GUI non erano corretti e sono ammortizzati, ma l'API per mettere in funziona alla grande quando tutto ciò che serve è disegnare una trama o del testo su uno schermo. Si chiamano legacy, ma non ci sono piani per rimuoverli, come l'intero Unity UI is made out of it anyway.

Ho realizzato alcuni giochi proprio su questi, utilizzando Unity come API multipiattaforma molto ingegnerizzata per disegnare quad.

C'è anche GL se vuoi qualcosa di più.

Ricorda solo: non ci sarà fisica incorporata, effetti particellari, ricerca di percorsi o altro - solo un modo semplice per disegnare cose sullo schermo. Avrai il controllo totale su ciò che verrà disegnato - e questa è una cosa buona e cattiva, a seconda di cosa vuoi fare.

+0

Per quanto riguarda la risoluzione multipla, questa è una delle cose che dovrai implementare tu stesso, proprio come hanno fatto tutti in framework vecchio stile come SDL, Allegro o quei molti flash engine. –