Search code examples
c#unity-game-engineparent-childinstantiation

Setting the parent of a transform which resides in a Prefab Asset is disabled to prevent data corruption


I am facing this problem in Unity again and again. I cannot find solution. I think my code is right, but where is the problem?

GameObject visual = Instantiate<GameObject>(placementObject[num], hit.point + visualOffset, Quaternion.identity); 
visual.transform.SetParent(parentObject.transform); <--- Causing error

Any suggestions? Thank you for any feedback!


Solution

  • you could set the parent directly:

    GameObject visual = Instantiate<GameObject>(placementObject[num], hit.point + visualOffset, Quaternion.identity, parentObject.transform); 
    

    but using SetParent after Instantiate() should work, too. Check whether parentObject is not null.