Rigidbody2D to go through Box Collider 2D
Hello, I am trying to make a scoring system for a game that I am making; it's a remake of Flappy Bird.
The issue I am having is, I have set up a sprite with a rigidbody2d and a box collider as the score; I am trying to make it so that when the character passes through that sprite; it will add one to the score however when the character attempts to go through it, it just get's pushed back to the other side of the screen.
This is because of the box collider of course but I am not sure of any other way of doing this without this method. Here is the code which detects if the character hits the pipe or the score line:
void OnCollisionEnter2D (Collision2D hit) {
if(hit.transform.gameObject.name == "Pipe(Clone)") {
die();
Debug.Log("hit");
}
if (hit.transform.gameObject.name == "Score(Clone)") {
Debug.Log("Score");
}
}
Everything logs perfectly fine however the problem is that the bird just faceplants into the score line which isn't what is supposed to happen, please try to help or advise what I should do with this.
P.S. I am a novice programmer; I sort of know what I am doing however not really good at debugging things and fixing them, Thank you.
Answer by Zoogyburger · Jan 25, 2016 at 06:35 PM
Add a box collider2d on your score point sprite and check the isTrigger box. Then add a Rigidbody2D to your score point sprite. In your script, replace:
if (hit.transform.gameObject.name == "Score(Clone)") {
Debug.Log("Score");
}
with:
void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.name == "Score(Clone)")
{
Debug.Log("Score");
}
}
Hope this helps : )
Your answer
Follow this Question
Related Questions
I somehow broke Unity. 0 Answers
Why is my character slightly floating above the ground? 0 Answers
OnCollisionEnter 2d not working 0 Answers
Collider and Rigidbody Problem 1 Answer
How to create a "trap" when ground is tiled with collider. 0 Answers