x


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

more ▼

asked Jun 12 '12 at 02:08 PM

Ben Ezard gravatar image

Ben Ezard
229 2 6 8

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.

Jun 12 '12 at 03:09 PM ExTheSea
(comments are locked)
10|3000 characters needed characters left

1 answer: sort voted first

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) {
    //[...]
}
more ▼

answered Jun 12 '12 at 03:35 PM

Bunny83 gravatar image

Bunny83
45.3k 11 49 207

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 :)

Jun 12 '12 at 03:49 PM Ben Ezard
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

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

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x591
x423
x136
x37
x10

asked: Jun 12 '12 at 02:08 PM

Seen: 407 times

Last Updated: Jun 12 '12 at 03:49 PM