C# Unity kodunda buton basılı kalmıyor

stalker x

Hectopat
Katılım
1 Nisan 2020
Mesajlar
428
Çözümler
3
Unity'de buton ile açılan kapı tarzı bir şey yapacağım ve yazdığım kodda her şey calışıyor sadece çalışmayan tek şey: Hem kutu hem de karakter Trigger'ın üzerinde iken ikisinden herhangi biri Trigger'dan çıkınca animasyon ıdle haline dönüyor. mesela kutu butonun üstünde iken ben karakter ile butonun içinden geçip cıktığımda kutu hala butonun üstünde olmasına rağmen buton eski haline dönüyor. If yapısının içerisine && koyup denedim olmadı.

[CODE lang="csharp" title="Buton Kodu" highlight="24"]public class ButtonAnimation : MonoBehaviour.
{
public Animator animator;
void Start()
{

animator = GetComponent<Animator>();
}
private void OnTriggerStay2D(Collider2D other)
{
if (other.gameObject.tag == "Player" || other.gameObject.tag == "Box")
{
animator.SetTrigger("Down");

}
}
private void OnTriggerExit2D(Collider2D other)
{
if (other.gameObject.tag == "Player" || other.gameObject.tag == "Box")
{
animator.SetTrigger("Idle");
}
}
[/CODE]
 
Son düzenleyen: Moderatör:
Unity'de buton ile açılan kapı tarzı bir şey yapacağım ve yazdığım kodda her şey calışıyor sadece çalışmayan tek şey: Hem kutu hem de karakter Trigger'ın üzerinde iken ikisinden herhangi biri Trigger'dan çıkınca animasyon ıdle haline dönüyor. mesela kutu butonun üstünde iken ben karakter ile butonun içinden geçip cıktığımda kutu hala butonun üstünde olmasına rağmen buton eski haline dönüyor. If yapısının içerisine && koyup denedim olmadı.

[CODE lang="csharp" title="Buton Kodu" highlight="24"]public class ButtonAnimation : MonoBehaviour.
{
public Animator animator;
void Start()
{

animator = GetComponent<Animator>();
}
private void OnTriggerStay2D(Collider2D other)
{
if (other.gameObject.tag == "Player" || other.gameObject.tag == "Box")
{
animator.SetTrigger("Down");

}
}
private void OnTriggerExit2D(Collider2D other)
{
if (other.gameObject.tag == "Player" || other.gameObject.tag == "Box")
{
animator.SetTrigger("Idle");
}
}
[/CODE]
Hocam bunu mouse over olayına yapmanız lazım.
 
Hocam bunu mouse over olayına yapmanız lazım.
Mouse ile ne ilgisi var?
Yanlış anlamayın anlayamadım.
Buton dediğim UI butonu değil.Oyun içi benim Aseprite'tan tasarlıdıgım bir oyun objesi.2 farklı resim yaptım biri basıldıgı hali diğeri normal hali sonra onları bir animasyona dönüştürdüm.Trigger atadım.
 
Son düzenleme:
Aradığınız özelliğin terim adı Toggle Button olarak geçiyor. Unity Forumlardan güzel bir örnek buldum:

 
Aradığınız özelliğin terim adı Toggle Button olarak geçiyor. Unity Forumlardan güzel bir örnek buldum:

UI butonu olmadığını söyledim.Ayrıca GUI sistemi kalkalı çok oldu(UI oldu yeni adı) zaten konu 2013'te açılmış oradaki coğu kod şu an kullanılmıyor bile.
 
Olayı şu şekilde izah edeyim.
Belirlediğim Trigger'a Box veya Player taglı cisimler girerse veya üzerinde durursa 1.animasyonu çalıştıracak.Aynı şekilde birinden biri cıkarsa Trigger'dan 2.animasyonu calıştaracak.Sorun da tam burada benim istediğim 2'si de Trigger'dan çıktıktan sonra 2.animasyonu çalıştırsın ancak sadece 1'i çıkınca 2.animasyonu çalıştırıyor.

other.gameObject.tag == "Player" && other.gameObject.tag == "Box"
Bu şekilde yapmam bir şeyi değiştirmedi bu sefer 1.animasyonda sürekli takılı kaldı.
 

Geri
Yukarı