Gestire le coordinate 2D e ridimensionare in Unity è abbastanza semplice, ma non ovvio e come hai notato è diverso da come funzionano gli altri strumenti di sviluppo. Perché questo accade è perché Unity era un motore 3D che recentemente aveva innestato la grafica 2D.
In particolare, 1 unità in Unity non è necessariamente 1 pixel nell'immagine. Quando si importano immagini come Sprite 2D, in realtà esiste un'impostazione da Pixel a Unità che potrebbe essere configurata 1: 1 ma consiglio di lasciarla al valore predefinito 100: 1 per un paio di motivi (il motore fisico non funziona esattamente a 1: 1 e il valore predefinito è migliore per la compatibilità con il codice altrui).
Questa impostazione di ridimensionamento significa che tutte le posizioni sono divise per 100. È abbastanza facile purché si ricordi sempre il ridimensionamento; quando vuoi spostare uno sprite di 256 pixel (diciamo) poi lo sposti 2.56 Puoi anche scrivere una funzione di utilità per arrotondare i numeri a 2 cifre decimali / il pixel più vicino: Mathf.Round (float * 100) / 100f
Per quanto riguarda l'impostazione di una fotocamera pixel-perfetta, innanzitutto impostala come una fotocamera ortografica. Quando si seleziona la fotocamera, nelle sue impostazioni è presente un menu a discesa per Prospettiva o Proiezione ortografica; prospettiva significa che le cose sembreranno 3D, mentre ortogonale mostra la scena piatta. Proprio sotto questo menu a discesa c'è Dimensione; imposta le dimensioni ortografiche della fotocamera su metà delle dimensioni in pixel dello schermo che desideri.
Ad esempio, supponiamo che tu voglia uno schermo 1024x768 pixel perfetto. Bene, ciò significa che l'altezza della fotocamera dovrebbe essere di 384 pixel. Dividilo per 100 (a causa della scala da pixel a unità) e otterrai 3,84 per le dimensioni della videocamera. Ancora una volta, quella matematica è semplicemente SCREEN_SIZE / 2 / 100f
(Stavo aspettando di vedere quali altre risposte arrivano prima, ma sono passati un paio di giorni. Ho fatto 2D in Unity per un po 'usando 2D Toolkit , ma sono relativamente nuovo alle funzionalità 2D integrate)