[Résolu] Synchroniser des Assets entre différents projets.

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Avatar de l’utilisateur
TheParadox
Messages : 84
Inscription : 12 Juil 2017 19:54
Localisation : France

[Résolu] Synchroniser des Assets entre différents projets.

Message par TheParadox » 22 Juil 2020 09:10

Bonjour, Bonsoir :hello:

Je travailles sur plusieurs projets en même temps, et sur mon projet principal, j'ai créé des outils, fonctions, ect... divers qui me sont utiles dans pleins de situations (par exemple, un système de palette de couleur).

Je cherche donc à réutiliser ces Scripts et Assets dans mes autres projets.
Je sais que je pourrais simplement copier-coller le Dossier les contenant, seulement je le modifie/améliore en permanence, parfois depuis le Projet 'principal', parfois depuis mes autres projets.

Je cherche donc à synchroniser le dossier, mais je ne sais pas vraiment comment m'y prendre. Pour l'instant j'utilise un logiciel externe qui permet de synchroniser deux dossiers automatiquement, mais c'est rapidement limité, notamment pour en synchroniser plus de 2 (dans plus de 2 projets donc).

Comment est-ce que je pourrais m'y prendre ? Je pensais utiliser le système de Package d'Unity, qui serait la solution parfaite : le dossier est stocké dans le 'cloud' Unity, je peux l'update n'importe quand depuis n'importe quel projet et tout resterait synchronisé.
Mais je ne sais pas du tout comment m'y prendre...

Des idées ? Merci d'avance. :-D
Dernière édition par TheParadox le 18 Août 2020 15:11, édité 1 fois.
Une seule chose est sûre : rien n'est certain, car cette phrase est un mensonge.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6220
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Synchroniser des Assets entre différents projets.

Message par boubouk50 » 22 Juil 2020 09:49

Simplement exporter/importer ton dossier dans un unitypackage devrait l'updater il me semble, sans passer par le package manager, je veux dire. (import custom package)
Fais un test, exporte un package, importe-le dans ton 2nd projet. Modifie le 1e, exporte et importe de nouveau, il devrait te donner la liste des assets qui ont été modifiés.
Je crois qu'il se base sur les GUIDs des assets contenus dans les métadonnées. Il ne faut donc pas toucher à ceux-ci (changement de nom, de place, etc) pour que ce soit efficace.
Sinon, et là, je n'y connais rien, c'est de passer par le package manager, mais c'est peut-être compliqué pour pas grand chose.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

ReMix
Messages : 15
Inscription : 26 Oct 2018 15:57

Re: Synchroniser des Assets entre différents projets.

Message par ReMix » 28 Juil 2020 10:28

Au contraire, je dirais que si tu veux synchroniser plus simplement, utilise le package manager !
Créer un dossier qui contient tes scripts/assets/données, et ajoute un fichier

Code : Tout sélectionner

package.json
que tu remplis avec les infos ici : https://docs.unity3d.com/Manual/upm-manifestPkg.html

Une fois que tu as fait ça, tu peux "importer" ton package dans tes différents projets via package manager : https://docs.unity3d.com/Manual/upm-ui-local.html

Comme c'est un package "local", tu peux le modifier depuis n'importe quel projet qui l'utilise, et comme tous tes projets référencent le même package, les changements seront instantanés.

Avatar de l’utilisateur
TheParadox
Messages : 84
Inscription : 12 Juil 2017 19:54
Localisation : France

Re: Synchroniser des Assets entre différents projets.

Message par TheParadox » 28 Juil 2020 16:35

Merci ! C'est exactement ce que je recherchais :-D

Par contre, une fois le package importé, j'ai l'impression que les scripts ne sont pas accessibles...
Quand j'ouvre un script avec visual studio, les classes contenues dans mon package "n'existent" pas...

J'ai essayé de l'intégrer avec le mot clé "using", au début du script, mais l'auto-complétion ne me propose rien en rapport avec mon package...

Qu'est ce que j'ai loupé durant l'importation ? D'ailleurs, quand le package s'importe, il est ajouté au dossier "packages" de mon projet, mais pas au dossier "Assets" (alors qu'avec certains autres packs, certains dossier s'ajoutent aux assets automatiquement")...
Une seule chose est sûre : rien n'est certain, car cette phrase est un mensonge.

ReMix
Messages : 15
Inscription : 26 Oct 2018 15:57

Re: Synchroniser des Assets entre différents projets.

Message par ReMix » 17 Août 2020 15:47

Normalement, du as acces au code des packages dans VS, mais tu dois peut être activer "Generate all .csproj files" dans https://docs.unity3d.com/Manual/Prefere ... rnal-Tools

Et sinon, quand un package est importé via package manager, oui il n'apparait pas dans "Assets", mais bien dans "Packages", c'est le comportement normal, à la différence des .unitypackage qui sont plus des zip que tu importe dans le projet.

Avatar de l’utilisateur
TheParadox
Messages : 84
Inscription : 12 Juil 2017 19:54
Localisation : France

Re: Synchroniser des Assets entre différents projets.

Message par TheParadox » 18 Août 2020 15:10

J'ai trouvé ! :-D

https://forum.unity.com/threads/plugins ... ge.730328/

En fait, il faut créer un fichier ".asmdef" à la racine du package (au même endroit que le .package).

Donc, pour un package "MyPackage", à sa racine (donc dans le dossier "MyPackage", au même endroit que le .package), il faut créer un ficher nommé :
  • "unity.MyPackage.asmdef" ,
Dans lequel on écrit :

Code : Tout sélectionner

{
    "name": "unity.MyPackage",
    "references": [],
    "includePlatforms": [],
    "excludePlatforms": []
}
Ensuite, le package se ré-importe, et ça fonctionne, les scripts sont accessibles depuis le projet.
Une seule chose est sûre : rien n'est certain, car cette phrase est un mensonge.

Répondre

Revenir vers « Unity le logiciel »