2D Ground Check trigger messing up while overlapping multiple ground colliders
Hello, I am just getting into unity and have a issue with my ground check. It works fine but as soon there is an overlap between the trigger and multiple ground colliders (like a platform drops in) it seems the trigger starts acting up. It will detect that it is grounded with the two ground colliders but once it transitions back to one ground collider it doesnt trigger unless you jump back.
I have this code for my ground check currently-
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "Ground")
{
Player.GetComponent<Movement>().isGrounded = true;
Physics2D.IgnoreCollision(GameObject.FindWithTag("Character").GetComponent<Collider2D>(), GetComponent<Collider2D>());
}
}
void OnTriggerExit2D(Collider2D other)
{
if (other.tag == "Ground")
{
Player.GetComponent<Movement>().isGrounded = false;
Physics2D.IgnoreCollision(GameObject.FindWithTag("Character").GetComponent<Collider2D>(), GetComponent<Collider2D>());
}
}
Any help is appreciated as i am still pretty new to unity!
Answer by Elle_0_L · Apr 10, 2020 at 06:42 PM
I dont kn ow if this is the best way to do it but i got it working by making a list and adding and subrtacting-
public List<float> groundRange = new List<float>();
GameObject Player;
void Start()
{
Player = gameObject.transform.parent.gameObject;
}
void FixedUpdate()
{
if(groundRange.Count > 0)
Player.GetComponent<Movement>().isGrounded = true;
else
Player.GetComponent<Movement>().isGrounded = false;
}
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "Ground")
{
// Player.GetComponent<Movement>().isGrounded = true;
groundRange.Add(1);
Physics2D.IgnoreCollision(GameObject.FindWithTag("Character").GetComponent<Collider2D>(), GetComponent<Collider2D>());
}
}
void OnTriggerExit2D(Collider2D other)
{
if (other.tag == "Ground")
{
// Player.GetComponent<Movement>().isGrounded = false;
groundRange.Remove(1);
Physics2D.IgnoreCollision(GameObject.FindWithTag("Character").GetComponent<Collider2D>(), GetComponent<Collider2D>());
}
}
Your answer
![](https://koobas.hobune.stream/wayback/20220612231029im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Using OnTriggerStay for Ground Detection 0 Answers
scene/gameobject wont deactivate after trigger 1 Answer
How to start and stop timer when player colide with gameobject? 0 Answers
How to make a wall that disappears like Layers of fear ? 1 Answer
Help with Water Buoyancy Physics (using a trigger) 0 Answers