How to check parent value instead name value(more details in post)

Hi, I’m creating a game where I have a sphere that is able to move and jump. Right now I have the sphere set to jump anytime it’s on gameObject “Ground”. But the problem is that the sphere will not jump on duplicate grounds like “Ground(1)” or “Ground(2)”, and I don’t want to set each ground’s name to “Ground”. Is there any way to make it so that I can place “Ground(1)” as a child of Ground and it will jump on former?

My code for detecting when the Sphere is on ground and is able to jump:

void OnCollisionEnter(Collision collisionInfo)
{
	if(collisionInfo.gameObject.name == "Ground")
	{
		jumpCount = 0;
	}
}

If any of you need to see more code then I’ll add it to the post.

How about collisionInfo.gameObject.name.StartsWith(“Ground”)?

This is what tags are for. Create a new tag called “Ground” or something. And put it on all of your Ground objects.

And inside the collision check for collisionInfo.gameObject.tag == “Ground”, instead of .name.

This way you can name your objects whatever you want.

The best practice (imo) for this kind of mechanism is to use the tag system :

So you can create a Tag “Ground”, apply it to all the gameObjects with colliders as ground and write :

 void OnCollisionEnter(Collision collisionInfo)
 {
     if(collisionInfo.gameObject.CompareTag("Ground"))
     {
         jumpCount = 0;
     }
 }

or if you still want to use the gameObject name you can put all your ground colliders as children of an empty gameObject named “Ground” and write :

 void OnCollisionEnter(Collision collisionInfo)
 {
     if(collisionInfo.gameObject.transform.parent.name.Contains("Ground"))
     {
         jumpCount = 0;
     }
 }