- Home /
Struggling with Instatiating a prefab
I'm trying to Instatiate a Prefab by looking it up. The following code works:
var explosion: GameObject;
function update()
{
....somestuff...
var newexplosion = Instantiate (explosion, hit.point, transform.rotation);
}
This relies on me assigning the Prefab in the Editor's Inspector. But what I really want to do is:
function update()
.... somestuff....
var newexplosion =Instantiate (GameObject.Find("Explode"),hit.point,transform.rotation);
}
This doesnt work unless I have an instance of the prefab Explode called "Explode".
Hence, what I want is to instatiate an object using the prefab's name.
Its no doubt a very newb question but I just cant seem to get it.
Answer by Rod-Green · Oct 31, 2011 at 11:25 PM
You need to load the resource and then instantiate that reference:
var myprefab : GameObject = Instantiate(Resources.Load("myprefab"));
Note this will only load assets stored in the resources folder .. also I've noticed that the resource database might not have a link to your prefab (if you just created it) so I suggest adding this line initially:
//Remove before build/release
UnityEditor.AssetDatabase.Refresh();
Perfect, thank you guys. Here is what the line looked like:
var newexplosion : GameObject = Instantiate(Resources.Load("Explode",GameObject), hit.point, transform.rotation);
After I copied the Prefab into a folder called "Resources" as instructed.
Is this quite a heavy routine? Does the resource get cached? Should you preload any resources you think you may want to use?
I think unity might cache it internally however I would cache it to be safe.. i.e.
if(myprefab == null)
myprefab = Resources.Load("myprefab");
var myInstance : GameObject = Instantiate(myprefab);
Looks like you can also load many using Resources.LoadAll and address them via an array.
Again thanks.
Answer by kevork · Oct 31, 2011 at 11:24 PM
If you put the prefab in a "/Resources" folder, you can use Resources.Load.
Your answer

Follow this Question
Related Questions
Instantiating many objects 1 Answer
Unity UI prefab instantiation bug 1 Answer
How to instantiate an object with scripts? 1 Answer