A * merintis jalan untuk rintangan dinamis dan rintangan yang dibuat pemain?


11

Hai Saya membuat TD di Unity 5 dan butuh bantuan dengan Pathfinding saya.

Saya akan menggunakan Arons A * pathfinding untuk AI saya yang memungkinkan saya untuk menggunakan objek dinamis dan memperbarui jalur saat run-time. Namun dalam permainan saya, saya ingin pemain dapat memblokir antek-antek dengan menara khusus yang akan memaksa antek untuk menyerang "menara blok" alih-alih melewati tujuan mereka.

Bagaimana saya bisa mencapai sesuatu seperti ini?

Gambar untuk lebih jelas: masukkan deskripsi gambar di sini

Jawaban:


22

Saya belum melihat implementasi spesifik A * oleh Aaron tetapi dengan A * yang normal, Anda dapat memasukkan 'blok menara' sebagai medan yang dapat dilewati tetapi memperbarui heuristik sehingga 'biaya' jauh lebih tinggi daripada ubin biasa (sehingga AI akan mengevaluasi apakah lebih mudah untuk menghancurkan blok dan melanjutkan atau berkeliling sederhana melalui jalan yang tidak diblokir).

Maka Anda perlu memperbarui AI Anda sehingga ketika musuh mencoba untuk pindah dari ubin normal ke 'blok menara ubin' itu secara otomatis menyerang sampai hancur.


8
+1 Saya ingin menambahkan bahwa Anda mungkin ingin biaya menara pemblokiran dihitung tergantung pada berapa lama waktu yang diperlukan X nomor dan jenis antek untuk menghancurkannya, jika ada perbedaan. Biaya preset untuk menara mungkin tidak akurat jika minion level terendah membutuhkan 5 detik untuk menghancurkannya, tetapi satu super-minion dapat melakukannya dalam 1 detik.
Fuzzy Logic

0

Jika yang Anda cari adalah sejenis menara ejekan, Anda dapat menambahkan collider ke set as trigger dan ketika minion memasuki trigger mereka hanya ditulis untuk menyerang tower.

Jika Anda ingin antek menyerang menara hanya ketika tidak ada jalur alternatif, maka ketika jalur diblokir dan A * dipanggil untuk menghitung jalur lain jika mengembalikan nol maka Anda dapat membuat skrip musuh untuk menemukan semua menara yang mengejek dan targetkan mereka.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.