Unity'de tasarladığım düşman bir attack range e sahip. Oyuncu bu saldırı mesafesine girdiğinde düşman, oyuncunun göremeyeceği bir saldırı kutucuğu oluşturuyor ve bu kutucuk oyuncuya değiyor ise oyuncunun canı azalıyor. Normalde oyuncu bu saldırı mesafesine girdiğinde düşman, 2 saniye bekleyip bu kutucuğu oluşturmalı ardından 0.1 saniye içerisinde bu kutucuğu kapatıp tekrar 2 saniye bekleyince bu kutucuğu oluşturmalı. Böylece oyuncu her 2 saniyede bir hasar görmüş olacak. Ancak yazdığım kodda düşman, oyuncu saldırı mesafesine girdiğinde 2 saniye bekliyor ardından saldırı kutucuğunu adeta spamlıyor. Halbuki normalde saldırdıktan sonra 2 saniye bekleyip kutucuğu tekrar oluşturması lazım. Sizce koddaki hata nedir? Düşmana bahsettiğim 2 saniyelik cooldownı eklemek için neler yapabilirim?
İlk gözüme çarpan hata Onstay içinde Corutine çalıştırmanız. Menzil içinde kaldıkça birden çok Corutine çalıştıracaktır bunlarda birbirinin çalışmasını bozar.
İlk gözüme çarpan hata Onstay içinde Corutine çalıştırmanız. Menzil içinde kaldıkça birden çok Corutine çalıştıracaktır bunlarda birbirinin çalışmasını bozar.
Corutine içinde tekrar devam etmesini istiyorsanız orada bir while kullanmak işe yarayabilir.
Veya Update fonksiyonu içine alıp, trigger ile sadece girdiği çıktığı zamanlara bakarsınız.
En önemlisi bu tarz bir kodlama yerine pattern kullanımı ileride oluşacak karmaşıklıkları azaltacaktır ayrıca Unity Muse var ama onu daha detaylı incelemedim.