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 Ben Ezard · Jun 12, 2012 at 02:08 PM · crashparentparentingparent-childset

Crash when setting parent

I have this code:

 for (var c : Transform in pw1) {
     if (c.gameObject.tag != "WeaponSpawn") {
         var temp : Transform = Instantiate(weapons[count], c.position, c.rotation).transform;
         temp.localScale = new Vector3(3, 3, 3);
         Destroy(c.gameObject);
         temp.parent = pw1;
     }
 }

Basically it's used for changing the weapon on a spaceship - pw1 is a container object, which the weapon is a child of. pw1 is a Tranform. I instantiate the new weapon and destroy the old one, then scale the new one, and that all works nicely. However, when I then try to set the parent of the new weapon, Unity completely crashes and I have to kill it's process. Any ideas why this might be happening? Thanks

Comment
Add comment · Show 1
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 ExTheSea · Jun 12, 2012 at 03:09 PM 0
Share

If I were you I would just set the weapons as childs for example pw1 and then activate and deactivate the weapons on wish using SetActiveRecursively(false) bzw ...(true). Is this a possibility in your project because I don't think this would cause the unity to crash. This way you wouldn't have to destroy, instantiate weapons and set them parents.

1 Reply

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

Answer by Bunny83 · Jun 12, 2012 at 03:35 PM

I guess the problem ist that you add new childs to the same transform while you iterate through the children... You should work on a copy:

 var childs = new List.<Transform>(pw1);
 for (var c : Transform in childs) {
     //[...]
 }
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 Ben Ezard · Jun 12, 2012 at 03:49 PM 0
Share

Yeah I think you're right - I solved it before you answered by putting a yield statement before setting the parent, so that it would do it in the next frame. I imagine that you're way would also work Thanks :)

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

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

Getting the topmost parent 1 Answer

When in the script lifecycle are parent-child relationships applied? 1 Answer

Adressing a Child Object after it´s unparented 0 Answers

Strange movement artifacts when rotating children around parent object 1 Answer

Does transform.root work when a parent is made the child of another object through script? 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