- Home /
How to force a variable to prefab
Hello, I have an AI ship that I need to spawn from a prefab. The problem is the ship needs the transform of the ship that it needs to attack. I have tried to assign the transform directly to the variable in the inspector but when I try to make that variable stay in the prefab it doesn't. The prefab simply does not have that variable in it. So what I have tried to do is assign it through code by putting it on the script the spaceships are spawned with then assigning it when the spaceship is spawned. Here is an example:
var prefab : GameObject; //this is the spaceship spawned
var spawn : boolean = true; //this tells if the spaceship should be spawned
var enemy : Transform; //this is the transform of the enemy
function Update () {
if(spawn)//if we can spawn something...
{
Spawn(); //..go here
}
//This makes the spawn point move
transform.position.x = transform.position.x + 5 * Time.deltaTime;
transform.rotation.y = transform.position.y + 5 * Time.deltaTime;
}
function Spawn()
{
Instantiate(prefab, transform.position, transform.rotation);//Instantiate the prefab
spawn = false; //make the spawning stop
prefab.GetComponent(CollisionAvoidance).enemy = enemy;//THIS DOESN'T WORK!!! WHY?
yield WaitForSeconds(10);//wait ten seconds
spawn = true;//spawn another enemy
}
If you could please tell me why the variable can not be assigned that would be great, or if you could tell how to assign the variable to the prefab that would be great too.
Thanks in advance,
Grant
Answer by Owen-Reynolds · Jun 12, 2012 at 08:57 PM
Internet search for "Unity Instantiate" and look at the Unity manual page (2nd one listed, for me) about Instantiating Prefabs At Runtime. It has an example of how to spawn a rocket and a wreck, and then reach into their scripts.
In general, it will look like myClone.GetComponent(scriptName).varName=
Your answer
Follow this Question
Related Questions
Error: Instantiated Enemies don't get hit 2 Answers
Failure to assign a prefab to a variable 1 Answer
Any ideas on a simple AI script that doesn't use any drag/drop variables 1 Answer
[Solved]Instantiating prefab from a script and destroy it from another one 2 Answers
Spawning unique prefabs at different transform posititions 0 Answers