Saya membuat game 2D di Unity, tetapi ini akan berlaku untuk semua mesin game 2D.
Jika saya menerapkan multiplane parallax dengan kamera ortografis, sulit untuk meletakkan sprite lapisan latar belakang dan tahu di mana mereka akan sejajar dengan sprite di lapisan lain.
Insting pertama saya adalah menggunakan beberapa kamera, satu untuk setiap lapisan, dan menurunkan kecepatan pergerakan kamera untuk lapisan latar belakang. Ini menghindari keharusan untuk memindahkan semua sprite latar belakang setiap frame. Masalahnya adalah bahwa lapisan yang bergerak dengan kecepatan setengah akan memakan setengah ruang lapisan utama saat dilihat di editor. Jadi sulit untuk mengetahui di mana menempatkan sprite saat Anda meletakkan permainan. Masalahnya semakin buruk secara eksponensial saat Anda menambah jumlah lapisan.
Bagaimana saya mengatasi ini? Saya telah mencoba mengubah skala lapisan dengan kecepatan gerakan yang dimaksudkan saat bekerja dengan mereka di editor. Itu menempatkan semua sprite latar belakang di lokasi yang benar relatif terhadap lapisan utama, tetapi mereka sangat terdistorsi.
Apakah saya hanya perlu menyedotnya dan terus-menerus beralih antara editor dan game yang sedang berjalan untuk menguji latar belakang paralaks?
sumber
Jawaban:
Saya tidak terbiasa dengan Unity, jadi saya tidak dapat membantu Anda dengan spesifik, tetapi sepertinya Anda perlu menerapkan alat GUI untuk menyempurnakan nilai-nilai tersebut selama waktu berjalan dengan, katakanlah, satu set slider atau bidang numerik. Akan sangat sederhana untuk menerapkan bidang untuk mengubah nilai apa pun yang Anda tentukan (skala, kecepatan, dll) selama waktu berjalan yang memberi Anda umpan balik langsung. Untuk penempatan, Anda dapat menggunakan bidang atau penempatan manual dengan menyeret klik (yang mungkin sedikit lebih sulit untuk diterapkan, tetapi jauh lebih intuitif).
Ini memberi Anda kontrol penuh tanpa kompilasi dan menjalankan kode untuk setiap bagian kecil dari perubahan. Ketika Anda akhirnya tiba pada tampilan dan perasaan yang membuat Anda bahagia, gunakan nilai-nilai itu dalam daftar konstanta Anda. Jika ini terlalu menakutkan karena jumlah variabel yang Anda edit (katakanlah, banyak lokasi sprite di berbagai level), saya ingin menerapkannya dalam editor level, saya bayangkan, dengan fungsionalitas penyesuaian manual yang sama tetapi dengan hasil membuat dan menyimpan data yang disesuaikan.
sumber
Sebuah ide: Saya akan berpikir kamera untuk lapisan depan sudah cukup. Menempatkan sprite jauh dari yang ada di bidang z, dan menyamakan jarak memberi Anda sebagian kecil untuk memindahkan lapisan belakang itu.
Misalnya, jarak objek 10 dari kamera depan bergerak 1/10 di lapisan latar belakang. Objek jarak 2, akan bergerak 1/2 di lapisannya masing-masing, dll.
sumber