Çözüldü Unity2D oncollisionenter2D (else) sorunu

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

YTibrahim

Hectopat
Katılım
20 Mayıs 2018
Mesajlar
32
Herhese merhaba. Unity üzerinden 2D bir oyun geliştiriyorum ama bir yerde takıldım. (Başlıktan da anlayacağınız oncollisionenter2D fonksiyonunda bir hata ile karşılaştım)
İf komutu ile ile karekterin yerde olduğunu tanımladım ama else ile yarden ayrılınca false yapmayı sağlayamadım if çalışıyor false çalışmıyor nedeni nedir?

\/---Kod satırı ---\/

Private Void oncollisionenter2D(collision2D collision)
{
If (collision. Gameobject. Tag == "yer")
{
Isgrounded = true;
}
Else:
{
Isgrounded = false;
}

}

Şimdiden Teşekkürler
 
Çözüm
Kodda sıkıntı yok. Bence ne yapmaya çalıştığınız da bir sıkıntı var. IsGrounded false olabilmesi için karekterin yerden farklı bir collider ile çarpışması lazım. Galiba platformer oyun yapıyorsun. Mesela sen zipladiginda IsGrounded false olsun diyorsan bu olmaz. False olabilmesi için "yer" tagindan farklı bir collider ile çarpışması lazım. O zaman false olur ki bu da istediğimiz sonuç değil. Bu yüzden phsics kullanırız. Overlapcircle araştır biraz.
Syntax'a dikkat etmemişsiniz.
C#:
if (collision.Gameobject.Tag == "yer")
{
    isGrounded = true;
}
else
{
    isGrounded = false;
}

Python ile karışık saçma bir kod yazılmış.
 
Kodda sıkıntı yok. Bence ne yapmaya çalıştığınız da bir sıkıntı var. IsGrounded false olabilmesi için karekterin yerden farklı bir collider ile çarpışması lazım. Galiba platformer oyun yapıyorsun. Mesela sen zipladiginda IsGrounded false olsun diyorsan bu olmaz. False olabilmesi için "yer" tagindan farklı bir collider ile çarpışması lazım. O zaman false olur ki bu da istediğimiz sonuç değil. Bu yüzden phsics kullanırız. Overlapcircle araştır biraz.
 
Çözüm
Kodda sıkıntı yok. Bence ne yapmaya çalıştığınız da bir sıkıntı var. IsGrounded false olabilmesi için karekterin yerden farklı bir collider ile çarpışması lazım. Galiba platformer oyun yapıyorsun. Mesela sen zipladiginda IsGrounded false olsun diyorsan bu olmaz. False olabilmesi için "yer" tagindan farklı bir collider ile çarpışması lazım. O zaman false olur ki bu da istediğimiz sonuç değil. Bu yüzden phsics kullanırız. Overlapcircle araştır biraz.
tamam dediğini anladım zaten sorunuda çözdüm OnColliderExit2D kullandım oldu :D genende en mantıklı cevap senin olduğu için seni seçtim. :D
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı