Can't Instantiate an object as child of another
I have a script which creates several game objects. Whenever I try to make the new objects child of the object owning the script, I get the error: "Setting the parent of a transform which resides in a prefab is disabled to prevent data corruption"
This is the code for the game object instantiation.
GameObject b = Instantiate(buttonRefs[i]) as GameObject; b.transform.SetParent(transform); //The new button is child of button brancher b.transform.position = transform.position;
buttonRefs is nothing more than an array of prefabs. Any comment is welcome!
And I double checked the fact that the item which is to be set as parent is not a prefab and is indeed a gameobject present in the scene.
Answer by itsharshdeep · Sep 07, 2016 at 12:03 PM
Do like this :
GameObject instantiateAble = Resources.Load <GameObject> (Constants.PATH_PREFABS_BASE + Constants.PREFABS_ANNOTAION_PADS);
GameObject go = Instantiate (instantiateAble,
annotation.position,
Quaternion.identity) as GameObject;
go.transform.SetParent (parent.transform);
I think as you are instantiating and directly setting as prefab.. so he is referencing as the original object. That's why I do get the gameobject form the resources then Instantiate it.
Thanks
That actually worked. Thanks! I will be using that for now, planning on doing a GameObjectmanager later on.
Your answer
Follow this Question
Related Questions
how do i make an instantiated object be a child of DontDestroyOnLoad object's child ? 2 Answers
My code is instantiating many prefabs, i only want one. 1 Answer
Generating prefabs at origin that are children of moving GameObjects? 2 Answers
How to spawn a prefab at a duplicate objects location 1 Answer
How to store a position that is moving to create a prefab to spawn at the exact position 1 Answer