Hi,
good. I don't think there is another way, I mean another "efficient" way. Prefab are now very powerful.
What is it with prefab that you don't feel confortable with in your case? If for example it's a case of displaying a different texture on each cube, this is perfectly possible, and meant to be that flexible.
assign an id for each of your prefabs, for example, expose a "id" int variable in the inspector, and set that up manually, or if you create them prefab at runtime, even easier, you do it within the fsm logic.
then each prefab can call a manager pass its id and get a texture in return, or a pointer as to where to get the texture.
For this kind of work, ArrayMaker will make your life easier and will be a lot more convenient to work with without leaving the Fsm editor.
https://hutonggames.fogbugz.com/default.asp?W715Bye,
Jean