- Home /
Trigerrs Logic problem with collision damage
Hello everyone I´m developing a runner game and my problem is when the character colide with the obstacle, the character receive two damage, because the character have 2 collider,the collider of the obstacles and the collider of the cheackground to know when he needs to jump or die.
the life sistem is simple hava two lifes when he is collide lose 1 if he collide two times he dies.But because the two colliders every time the character receive 2 damage, so i want to know exist some form to me cancel the checkground collider when checkground collide with the obstacle.
the code is this:
void OnTriggerEnter2D(Collider2D verif){
if(verif.gameObject.name == "Bandeira"){
Application.LoadLevel("Play");
}
else{
Debug.Log("Barreira");
StartCoroutine("DeathParticleDelay");
}
}
void Movimentacao(){
transform.Translate (Vector2.right * velocidade * Time.deltaTime);
}
public IEnumerator DeathParticleDelay (){
Debug.Log(currentHealth);
if(currentHealth >=0){
currentHealth -= 1;
Debug.Log(currentHealth);
Instantiate(deathParticle,PosiPlayer.transform.position,PosiPlayer.transform.rotation);
}
if(currentHealth <0){
Debug.Log(currentHealth);
Instantiate(deathParticle,PosiPlayer.transform.position,PosiPlayer.transform.rotation);
//faz o personagem sumir
jogador.GetComponent<Renderer>().enabled = false;
PlayerPrefs.SetInt("pontuacao",pontuacao);
if(pontuacao > PlayerPrefs.GetInt("recorde")){
PlayerPrefs.SetInt("recorde",pontuacao);
}
morte = true;
yield return new WaitForSeconds(GameOverDelay* Time.deltaTime);
if(morte == true){
Application.LoadLevel("GameOver");
}
}
}
Thanks
Answer by _Yash_ · Jul 02, 2015 at 10:55 AM
You can change if(currentHealth <0) to if(currentHealth <-1)
or
if you change your health to float change currentHealth -= 1 to currentHealth -= 0.5f so when it will collide two time total health decremented will be 1.
Thanks for the answer, I try but doesn´t work
I read about ignoreCollision,but i can´t apply in this case, do you know something about it
yes, IgnoreCollision can solve it but you have to call this on every collider which you don't want to be collided with one of the two colliders.
Your answer
Follow this Question
Related Questions
How to use Physics2D.IgnoreCollision2D in Unity 5 to cancel a trigger 0 Answers
[2020.3][2D Collision] Trigger collider with physics computation 0 Answers
OnTriggerEnter2D problem on created collider2d and rigidbody2d during runtime 0 Answers
Closed - Go to next scene on collision 1 Answer
OnTriggerExit2D not working, but OnTriggerEnter2D does??? 5 Answers