Çözüldü Kodlar doğru zamanlı çalışmıyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

emirt76

Hectopat
Katılım
19 Temmuz 2021
Mesajlar
7
Daha fazla  
Cinsiyet
Erkek
Bir gameobject için mousebuttondown komutu ekledim. Bu koda göre farede her sol tık basıldığında bir sahte kare oluşacak, bırakıldığında ise oluşan kare yok olacak. Eğer kare düşmana çarpıyor ise düşmanın canı azalacak ve düşman inaktif pozisyona geçecek.

Ancak kodda şöyle bir sorun var ki, mouse sol tıkına bastığımda bazen bahsettiğim hayali kare oluşuyor bazen ise oluşmuyor. Spamladığımda bile arada sırada çalışıyor. Aynı sorun etkileşilen maddelerde de oluyor. E tuşuna bastığımda karakterin belli bir objeyi aktifleştirmesi lazım ve aktifleşen madde eğer yerdeki nesne ile etkileşiyorsa onu yerden alıp kendinde halihazırda bulunan nesneyi aktifleştirmesi lazım, ancak ilk basışımda bu olayın gerçekleşmesi lazımken bazen 3-4 kere basınca oluyor bazen tek seferde oluyor bazense hiç olmuyor. Acaba bu algılamama veya gecikme durumunun (sorunun ne olduğu hakkında en ufak fikrim yok) çözümünü bileniniz var mıdır?

Şimdiden teşekkürler.
 

Dosya Ekleri

  • png1.png
    56,8 KB · Görüntüleme: 36
  • png2.png
    79,7 KB · Görüntüleme: 36
  • png3.png
    98,1 KB · Görüntüleme: 35
Çözüm
Kodu FixedUpdate içerisinde çalıştırırsanız saniyede sınırlı kez sorgulanır, Update() içerisinde çalıştırın.

Fizik işlemleri FixedUpdate'de Input işlemleri Update'de alınır.
Kodu FixedUpdate içerisinde çalıştırırsanız saniyede sınırlı kez sorgulanır, Update() içerisinde çalıştırın.

Fizik işlemleri FixedUpdate'de Input işlemleri Update'de alınır.
 
Çözüm
Benim bildiğim ilk fotoda else çalışmaz,
if (Input.GetKeyDown(KeyCode.Mouse0))
{
} else {
}

else if ile Input.GetKeyUp demen lazım.
Kod:
if (Input.GetKeyDown(KeyCode.Mouse0))
{
    Debug.Log("Mouse button pressed");
}
else if (Input.GetKeyUp(KeyCode.Mouse0))
{
    Debug.Log("Mouse button released");
}
 
Kodu fixedupdate içerisinde çalıştırırsanız saniyede sınırlı kez sorgulanır, Update() içerisinde çalıştırın.

Fizik işlemleri fixedupdate'de ınput işlemleri Update'de alınır.

Teşekkür ederim şu an tam istediğim gibi çalışıyor.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…