Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by cibine · Nov 22, 2010 at 10:42 PM · childraycasthitdeactivate

Deactivating a Child in C#

Hello, I am new to scripting and I am trying to learn a javascript/C# by practicing a bit. I am working on a small trial & error project :P . what I am trying to do is pretty much:

click on an object and deactivate it click on it and activate it (gameObject.active = true/false). Obviously what doesn't work is the fact that once the object is deactivated you can't click on it to activate it again. So the idea is to have the object as a child and when I click on the parent i can activate/deactivate it. Sorry for the noob-ish question but I've read a lot of the documentation & posts and I can only get more confused everytime I try to find an answer!.

As you can see from the script I am detecting the collider I hit and then (de)activate its gameObject. How do I change from collider.gameobject.active to something like collider.gameobject.child.active? In other words how can I access and (de)activate the child for the game object I am raycasting on?
Many thanks

Here is the script so far:

using UnityEngine;

public class RayCast : MonoBehaviour { void Update () { if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit;

         if(Physics.Raycast(ray, out hit)) {
             Debug.Log(hit.collider.name);
             if(hit.collider.gameObject.active == true)
                 hit.collider.gameObject.active = false;
             else hit.collider.gameObject.active = true;
         }
     }
 }

}

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
2
Best Answer

Answer by skovacs1 · Nov 22, 2010 at 11:23 PM

To act on children, you would loop through them in the transform like so:

using UnityEngine;

public class clickActivation: MonoBehaviour { RaycastHit hit; void Update () { if(Input.GetMouseButtonDown(0) && Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit)) { Debug.Log(hit.collider.name); foreach(Transform child in hit.transform) child.gameObject.active = !child.gameObject.active; } } }

Children are stored in the Transform. See this doc.

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image cibine · Nov 23, 2010 at 04:16 PM 0
Share

This worked!. Thank you for the quick reply and the !child... freebie as well :). I tottally forgot how to get the "opposite" of the current value....

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

No one has followed this question yet.

Related Questions

Destroying a child object? 1 Answer

How to activate the child of an object without declaring a public transform? 1 Answer

Make a simple tree 1 Answer

Most effective way to get deactivated children? 1 Answer

child object to parent c# 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges