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