Come posso visualizzare i livelli di parallasse in un editor di livelli?


9

Sto realizzando un gioco 2D in Unity, ma questo si applicherebbe a qualsiasi motore di gioco 2D.

Se implemento la parallasse multiplano con telecamere ortografiche, è difficile disporre gli sprite del livello di sfondo e sapere dove si allineeranno con gli sprite in altri livelli.

Il mio primo istinto è stato quello di utilizzare più telecamere, una per ogni livello, e ridimensionare la velocità di movimento delle telecamere per i livelli di sfondo. Questo evita di dover spostare tutti gli sprite di sfondo di ogni fotogramma. Il problema è che uno strato che si muove a metà velocità occuperà metà dello spazio del livello principale se visualizzato nell'editor. Quindi è difficile sapere dove posizionare gli sprite mentre stai preparando il gioco. Il problema peggiora esponenzialmente quando si aumenta il numero di livelli.

Come posso aggirare questo? Ho provato a ridimensionare inversamente i livelli in base alla velocità di movimento prevista lavorando con loro nell'editor. Ciò colloca tutti gli sprite di sfondo nelle posizioni corrette rispetto al livello principale, ma sono orribilmente distorti.

Devo solo succhiarlo e passare costantemente dall'editor al gioco in esecuzione per testare gli sfondi di parallasse?


4
Quando ho fatto un gioco del genere, l'ho appena creato in modo da poter trascinare la videocamera nell'editor e vedere come funzionava la parallasse. Tuttavia, non sono sicuro di come fare qualcosa del genere in Unity.
Tetrad

Risposte:


1

Non ho familiarità con Unity, quindi non posso aiutarti con i dettagli, ma sembra che ciò di cui hai bisogno sia implementare una GUI per mettere a punto quei valori durante il runtime con, diciamo, una serie di cursori o campi numerici. Sarebbe abbastanza semplice implementare i campi per alterare qualsiasi valore che si sta determinando (scala, velocità, ecc.) Durante il runtime che ti dà un feedback immediato. Per il posizionamento, è possibile utilizzare i campi o il posizionamento manuale con il trascinamento dei clic (che potrebbe essere leggermente più difficile da implementare, ma molto più intuitivo).

Questo ti dà il controllo completo senza compilare ed eseguire il codice per ogni piccola parte di una modifica. Quando finalmente arrivi a uno sguardo con cui sei felice, usa quei valori nel tuo elenco di costanti. Se questo è troppo scoraggiante a causa del numero di variabili che stai modificando (diciamo, numerose posizioni di sprite in numerosi livelli), ti consigliamo di implementarlo in un editor di livelli, immagino, con la stessa funzionalità di regolazione manuale ma con il risultato della creazione e memorizzazione dei dati adeguati.


Sì, sembra che usare un editor di livelli sia il modo migliore per farlo, sia che tu stia programmando il tuo, o nel mio caso con Unity, configurandolo per funzionare con l'editor esistente. Ho codificato la mia configurazione di paralax con un oggetto videocamera separato per ogni livello, e le telecamere vengono spostate in modo appropriato rispetto alla telecamera principale di ciascun fotogramma. Quindi utilizzare [ExecuteInEditMode] per farli aggiornare anche quando la fotocamera principale viene trascinata nell'editor. Devo solo ricordare di spostare solo la fotocamera principale direttamente.
TenFour04,

1

Un'idea: penso che una fotocamera per lo strato frontale sia sufficiente. Posizionare gli sprite a una distanza da quella sul piano z, e stringere la distanza ti dà una frazione su cui spostare quel livello posteriore.

Ad esempio, una distanza dell'oggetto 10 dalla fotocamera anteriore si sposta di 1/10 nel livello di sfondo. Un oggetto di distanza 2, si sposterà di 1/2 nel suo rispettivo strato, ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.