Pour créer un niveau de mon jeu avec tous les éléments qui s'agencent dynamiquement, j'utilise un bon vieux système de tableau qui a la forme suivante :

private var myMap1 = [
0, 0, 11, 0,11,11, 8, 1,  2, 0, 0, 5, 0, 0,  2, 3, 4, 0, 0, 1,4, 5, 0, 1,  2, 3, 4,
0,11,  0,11, 0, 0, 0, 8,  2, 3, 0, 0, 0, 0,  2, 3, 4, 0, 0, 1,4, 5, 0, 1,  2, 3, 4,
0, 0,  0, 0, 4, 0, 4, 1,  4, 0, 0, 10, 0, 0,  2, 3, 4, 0, 0, 1,4, 5, 0, 1,  2, 3, 4,
0, 0,  0, 0, 0, 0, 0, 1,  2, 8, 0, 0, 10, 0,  2, 3, 4, 0, 0, 1,4, 5, 0, 1,  2, 3, 4,
0, 0,  0, 0, 0, 0, 0, 1,  2, 8, 0, 0, 0, 10,  2, 3, 4, 0, 0, 1,4, 5, 0, 1,  2, 3, 4
];

Chaque chiffre correspond à un élément du décor qui va être intégré dans le niveau. Par exemple :

Par exemple les 2 hamburgers correspondent au 2 "11" que l'on peut voir en partant de la gauche du tableau.

Ensuite un script parcours le tableau et fait le travail. Cependant, le tableau étant en dur dans le code, j'ai cherché un moyen de l'externaliser et heureusement tout est prévu. Je créé un fichier .txt que je place au niveau da ma structure de projet. Ensuite j'appelle le fichier comme suit :

import System.IO; // Je fait un appel des classes de lecture/écriture d'Unity

private var fileName = "level1.txt"; // Je définie l'emplacement du fichier, ici un lien relatif

function Start(){
// au démarrage du jeu
    var sr = new StreamReader(Application.dataPath + "/" + fileName); // on créé un stream depuis l'application mère vers level1.txt
    var fileContents = sr.ReadToEnd(); // Dans cette variable, on place le contenu du .txt
    sr.Close(); // on stoppe le stream

    var _chars= fileContents.Split(","[0]);// on enlève toutes les virgules, ce qui créé des blocs de chaines

    var _array:Array=new Array(); // on créé un nouveau tableau
      for (_char in _chars) { // on scanne la variable _chars et à chaque bloc de chaine...
          _array.push(parseInt(_char )); // on place le bloc dans le tableau en transformant la chaine de caractères en entier numérique
    }
    //::::::::::::::::::::::::::::::::::::::::::::::::::::::
    myMap=_array; // on retourne le tableau final
    GoPanel(); // on lance le panneau d'intro
    generateObjects(); // on génère le niveau
}

Ainsi, je peux changer et créer tous mes niveaux sans avoir besoin de recompiler l'application juste en modifiant le fichier.txt ou en en créant de nouveaux. Voilà une bonne technique de fainéant assez connue ;).