Is there a way to instantiate a prefab, in code through C#, but without actually having to create a public variable of Type GameObject and dragging and dropping a prefab from the project assets into the inspector?
I need to get a reference to an asset, and then instantiate it through code, but I don't know how to do that exactly. I have a game-manager class, which controls the way object are spawned and destroyed, with a total so far of over 20 types of prefabs. It would be far less messy If I could get a reference to them through code than having 20+ public variables in the inspector.
asked Feb 23 '10 at 12:49 PM
you can use resource folders. create a folder called resources and put all assets that you want to get reference to them by their names, in that folder. use the Load method to load resources. example let's say you have a prefab inside a resource folder called enemy and you want to instantiate it.
you can create asset bundles of your prefabs and put them inside your game folder too. then call www("file:/path") and get a reference to them and instantiate them. there is another way too. you can create a class that keeps a list of all prefabs in a dictionary. the name of those prefabs in the dictionary could be your key and the real GameObject reference could be the value.
answered Feb 23 '10 at 01:04 PM
Slight update to Ashkan's totally correct answer (this time in C#)
Create a folder called "Resources"
answered Sep 11 '10 at 09:28 PM