- Home /
instantiate object and let instantiated object know what it got instantiated from
HUH? this is weird, for some reason, half the text gets cut off when I post this :( It's always after the line "while(thisFloor<..."
Hi,
I have a GameObject with a script "game.js" attached to it. In this script, I want to instantiate a gameObject called "floor" which has a script called "floor" attached. The thing is, that the newly created "floor" needs to access a variable of the "game"-object. I tried:
#pragma strict
var floorCount: int=5;
var floors = new Array();
var floorType:GameObject;
function Start ()
{
//add floors
var thisFloor: int=0;
while(thisFloor
Script names must start with a capital letter. Eg, Floor.js, Game.js.
It's not a 'must'... but your code demonstrates nicely why it ought to be a 'should'. It's very difficult to understand code otherwise. This is especially the case when object and script name would be the same!
Answer by whydoidoit · Dec 30, 2012 at 02:10 PM
If it needs that reference to that game script in Awake then set the reference on the prefab just before you instantiate it, otherwise just GetComponent on the instantiated object to get your floor object and set it there. (BTW it is a very good idea to follow the naming convention of calling scripts names that start with a capital letter so it's easier for everyone to follow)
Answer by Golan2781 · Dec 30, 2012 at 02:26 PM
In the floor script:
var parent : game; // variable to store reference to game gameObject
In the game script:
var newfloor = Instantiate(floor , transform.position, transform.rotation);
newfloor.GetComponent.<floor>().parent = this; // set reference to spawner instance
You can then access, call, modify the spawning object in the floor object by using the parent variable.
Your answer
Follow this Question
Related Questions
Create Special Plane Objects at runtime 1 Answer
Bounds is 0 when Instantiated 2 Answers
scripts gets disabled when the prefab is instantiated 1 Answer
Why is it important to create an empty gameobject for my prefabs? 0 Answers
using Contains(gameObject) to find and destroy a gameObject from a list 2 Answers