Copier un projet Unity
Attention: cet article date du 4 novembre 2020
Ce qu'il contient est peut être encore valable...
... ou complètement obsolète!
Lorsque l’on crée un projet Unity, le Unity Hub nous crée en fait de nombreux dossiers/fichiers.
Pour démarrer un projet, il est souvent plus rapide de dupliquer un projet précédent, et d’y changer quelques détails.
À condition de prendre quelques précautions…
Un projet « starter »
Nous pourrions envisager, plutôt pratique dans le cadre de préparation de cours (par exemple) d’avoir un projet « vide de jeu » mais incluant quelques scènes standards.
Du genre écran d’accueil, choix du niveau, jeu (vide), et écran game over, et réglages.
Quelque chose du genre:
Enchainements d’écrans classiques, base de départ possible…
Un nouveau jeu serait identique au détail près du jeu en lui même.
Dupliquer cette base ferait gagner du temps, pouvant inclure quelques Assets standards (logo, gui, police…), voir quelques classes universelles (gestion du highscore, chargement des niveaux à partir d’un .json
…)
Il faut donc commencer par créer ce projet starter (supposons qu’il soit dans un dossier App/Starter/
dans mon cas).
Fermons Unity.
Précaution
Vérifier que les Meta Files soient visibles (aller dans Edit > Project Settings > Version Control, Mode doit être à Visible Meta Files).
Il semblerait que ce soit par défaut.
Un petit ménage
Ne pas hésiter à sauvegarder le projet initial avant toute manipulation…
Le dossier du projet contient quelques éléments:
.vs/ Assembly-CSharp.csproj Assets/ Starter.sln Library/ Logs/ Packages/ ProjectSettings/ Temp/ UserSettings/ obj/
Curieusement, un dossier .sln
existe dans ce dossier, du nom du projet. Il semblerait qu’il ne soit pas utile. Si on le supprime, VisualStudio le recréera (sous le nom du dossier actuel).
Certains dossiers commencent par un .
et sont donc cachés par défaut par le finder ou l’explorateur Windows. Mais si on copie le dossier parent, il seront à priori copiés aussi.
Les dossiers Temp/
et Library/
peuvent être supprimés. Ils contiennent des éléments temporaires, lourds, qui seront reconstitués si besoin par Unity.
Un de mes derniers projets pesaient 640Mo, 258Mo pour Temp/
et 379 pour Library/
… Ce n’est pas rien.
Note: je n’avais pas fermé Unity (hum) au moment de préparer cet article. Il semblerait que le dossier Temp/
s’auto détruise à la fermeture…
Copier un projet Unity
Il suffit de copier le dossier sous un nouveau nom / un autre emplacement.
Ou de livrer le fichier Zip aux élèves…
L’ajouter à Unity Hub
Utiliser le bouton Add et pointez vers le nouveau dossier…
Finaliser l’opération
Un petit tour dans le Project Settings, onglet Player pour changer le Product Name…
Et bien sûr, les assets, icones, etc…
Mais ceci est une autre histoire!
Complément: Un grand ménage ?
Si l’on considère un exemple de fichier .gitignore
pour les projets Unity, il semble que l’on puisse être encore plus violent.
En effet, dans ce fichier, ils excluent:
/[Ll]ibrary/ /[Tt]emp/ /[Oo]bj/ /[Bb]uild/ /[Bb]uilds/ /[Ll]ogs/ /[Uu]ser[Ss]ettings/
On peut donc raisonnablement supprimer tous ces dossiers… qui seront reconstitués si nécessaires.
Ce qui revient à ne conserver, finalement, que:
Assets/ Packages/ ProjectSettings/
Note: méfiez vous tout de même, il peut y avoir des cas avec d’autres dossiers que je n’ai pas encore croisé…
D’ailleurs, quitte à parler de Git, créer un dépôt de ce starter serait encore plus simple…