Menangani koordinat 2D dan penskalaan dalam Unity cukup sederhana, tetapi tidak jelas dan seperti yang Anda perhatikan tidak seperti cara alat dev lainnya bekerja. Mengapa ini terjadi adalah karena Unity adalah mesin 3D yang baru-baru ini memiliki grafik 2D.
Secara khusus, 1 unit di Unity belum tentu 1 piksel dalam gambar. Ketika Anda mengimpor gambar sebagai Sprite 2D sebenarnya ada pengaturan Pixel-to-Unit yang dapat dibuat 1: 1 tapi saya sarankan membiarkannya pada default 100: 1 karena beberapa alasan (mesin fisika tidak berfungsi dengan benar pada 1: 1, dan standarnya lebih baik untuk kompatibilitas dengan kode orang lain).
Pengaturan penskalaan ini berarti bahwa semua posisi dibagi 100. Cukup mudah selama Anda selalu mengingat penskalaan; ketika Anda ingin memindahkan sprite 256 piksel (katakanlah) maka Anda memindahkannya 2,56 Anda mungkin juga ingin menulis fungsi utilitas untuk membulatkan angka menjadi 2 tempat desimal / piksel terdekat: Mathf.Round (float * 100) / 100f
Adapun pengaturan kamera pixel-sempurna, pertama-tama mengaturnya sebagai kamera ortografis. Saat Anda memilih kamera, dalam pengaturannya ada drop-down untuk proyeksi Perspektif atau Orthografis; Perspektif berarti hal-hal akan terlihat 3D, sementara ortografis menampilkan adegan datar. Tepat di bawah drop-down ini adalah Ukuran; atur ukuran ortografis kamera menjadi setengah dimensi piksel layar yang Anda inginkan.
Misalnya, Anda ingin layar 1024x768 piksel-sempurna. Nah itu berarti ketinggian kamera harus 384 piksel. Bagilah dengan 100 (karena skala piksel-ke-unit) dan Anda mendapatkan 3,84 untuk ukuran kamera. Sekali lagi, matematika itu hanyalah SCREEN_SIZE / 2 / 100f
(Saya menunggu untuk melihat jawaban lain apa yang didahulukan, tetapi sudah beberapa hari. Saya telah melakukan 2D di Unity untuk sementara waktu menggunakan Toolkit 2D , tetapi saya relatif baru dengan fitur-fitur 2D bawaan)