- Home /
copy settings from other gameobject
hi,
i got an game object with components & scripts attached to it. if the player clicks on a gui button the engine needs to destroy the current object and load a new object with the same component scripts settings position etc. (like a swap of objects)
this is what i got
var pos : Rect; var pos2 : Rect;
function OnGUI() { if (GUI.Button(pos, " Swap ")) { Destroy (gameObject);
player = new GameObject ("the new gameobject"); player.AddComponent ("Rigidbody"); player.AddComponent ("SphereCollider"); player.AddComponent ("Mesh Renderer"); player.AddComponent ("Drag NRotate 2"); }
greetz
Answer by duck · Jun 01, 2010 at 10:38 AM
Perhaps you could just use Instantiate to create the new object, then destroy the old object. Eg:
var newObject = Instantiate(oldObject);
Destroy(oldObject);
IIRC Instantiate doesnt copy the renderer values so you might have to rehash those as well, all the times I have used it then tried to change the r,g,b,a values I got 'renderer is not attached to this object' where it was in the original.
Answer by Wolin · Jul 03, 2012 at 12:56 PM
If the settings are always the same, just instantiate a prefab. If not, then write a method which will copy all the values (like position, mass etc.) from one object to another.
Your answer
![](https://koobas.hobune.stream/wayback/20220613042124im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Can someone help me fix my Javascript for Flickering Light? 6 Answers
Setting Scroll View Width GUILayout 1 Answer
How to tell if 2 blocks are next to each other in a 2d game? 1 Answer
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
It is not possible to invoke an expression of type 'UnityEngine.GameObject'? 1 Answer