- Home /
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.
Answer by FortisVenaliter · Oct 07, 2015 at 09:12 PM
How about collisionInfo.gameObject.name.StartsWith("Ground")?
Answer by SmileQ · Oct 08, 2015 at 08:03 AM
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.
Answer by 0potable · Oct 08, 2015 at 08:09 AM
The best practice (imo) for this kind of mechanism is to use the tag system : http://docs.unity3d.com/ScriptReference/GameObject-tag.html
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;
}
}
Your answer
Follow this Question
Related Questions
Make a simple tree 1 Answer
Target child of child without knowing name? 1 Answer
"Center On Children" programmatically 1 Answer
How to Access Components in Children of GameObject? 1 Answer
all parents of a transform 1 Answer