Unity Enemy cooldown çalışmıyor

emirt76

Hectopat
Katılım
19 Temmuz 2021
Mesajlar
7
Daha fazla  
Cinsiyet
Erkek
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?

png1.png
png2.png
 
İ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.
OnEnter içinde kullanınca da sadece ilk durumda çalışıyor. 2 saniye bekleyip tekrar etmesi için bir öneriniz var mı?
 
OnEnter içinde kullanınca da sadece ilk durumda çalışıyor. 2 saniye bekleyip tekrar etmesi için bir öneriniz var mı?
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.
 

Technopat Haberler

Yeni konular

Geri
Yukarı