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

Tam olarak ne olması gerektiğini anlayabilirsem yardımcı olabilirim. Bütün detaylarıyla tane tane yazar mısınız ?
Videoda görüldüğü üzere kutu butonun üzerinde iken ben karakter ile Trigger'a girip cıktıgımda animasyon değişiyor.Ama ben bunu istemiyorum.Eğer kutu üstündeyse animasyon 'Down' olarak kalsın.
 
C#:
using UnityEngine;

public class Technopat : MonoBehaviour
{
        public bool player_collided;
        public bool box_collided;
        public Animator animator;
        private void Start()
        {
        player_collided = false;
        box_collided = false;
        animator = GetComponent<Animator>();
        }
        private void Update()
        {
        if(box_collided == true)
        {
            animator.SetBool("Down", true);
        }
        else if(player_collided == true)
        {
            animator.SetBool("Down", true);
        }
        else if(player_collided && box_collided)
        {
            animator.SetBool("Down", true);
        }
        else
        {
            animator.SetBool("Idle", true);
        }
    }
        private void OnTriggerEnter2D(Collider2D other)
        {
        if (other.gameObject.CompareTag("Player"))
        {
            player_collided = true;
        }
        if (other.gameObject.CompareTag("Box"))
        {
            box_collided = true;
        }
    }
        private void OnTriggerExit2D(Collider2D other)
        {
        if (other.gameObject.CompareTag("Player"))  
        {
            player_collided = false;
        }
        if (other.gameObject.CompareTag("Box"))
        {
            box_collided = false;
        }
        }
}
 
Son düzenleme:
C#:
using UnityEngine;

public class Technopat : MonoBehaviour
{
        public bool player_collided;
        public bool box_collided;
        public Animator animator;
        private void Start()
        {
        player_collided = false;
        box_collided = false;
        animator = GetComponent<Animator>();
        }
        private void Update()
        {
        if(box_collided == true)
        {
            animator.SetBool("Down", true);
        }
        else if(player_collided == true)
        {
            animator.SetBool("Down", true);
        }
        else if(player_collided && box_collided)
        {
            animator.SetBool("Down", true);
        }
        else
        {
            animator.SetBool("Idle", true);
        }
    }
        private void OnTriggerEnter2D(Collider2D other)
        {
        if (other.gameObject.CompareTag("Player"))
        {
            player_collided = true;
        }
        if (other.gameObject.CompareTag("Box"))
        {
            box_collided = true;
        }
    }
        private void OnTriggerExit2D(Collider2D other)
        {
        if (other.gameObject.CompareTag("Player")) 
        {
            player_collided = false;
        }
        if (other.gameObject.CompareTag("Box"))
        {
            box_collided = false;
        }
        }
}
Hocam Bool olarak tek bir bool atadım Idle o da kodu düzenleyip denedim ama yine de çalışmadı.Kod doğru ancak sanki öncelik olarak Player'ı algılıyor kutuyu algılamıyor.
 
Bu script Player objesine ataçlıysa box'un rigidbody referansını almadan çalışmayacaktır zaten. Ben siz onu hallettiniz sanıyordum.
 
Bu script Player objesine ataçlıysa box'un rigidbody referansını almadan çalışmayacaktır zaten. Ben siz onu hallettiniz sanıyordum.
Yok yok hocam gerçekten hakkınızı helal edin.Kutuya Player tagını eklemişim kod çalışıyor ayırdıgınız zaman ve emek için çok teşekkürler, kusuruma bakmayın.
 

Yeni konular

Geri
Yukarı