EloiStree / HelloGitForUnity3D

Learn to use Git et GitHub pour Unity3D
0 stars 0 forks source link

Workshop-Day: Un jeu à 12 personnes sans trop de problème avec Git et le Package Manager #32

Open EloiStree opened 1 month ago

EloiStree commented 1 month ago

Le développement de jeux vidéo est avant tout un travail d'équipe 💪.

Vous êtes probablement habitué à utiliser Dropbox pour partager des fichiers, mais dans un projet en constante évolution, cela ne suffit plus.

Avec Git, il existe deux principales façons de collaborer sur un projet Unity 3D :

Dans ce cours, nous allons nous concentrer sur la deuxième méthode, celle du gestionnaire de paquets, car elle permet une meilleure organisation du travail en équipe et évite les conflits 😁.

Le principe est simple :

Et voilà ! Vous pouvez désormais partager votre travail avec vos collègues et l'utiliser dans tous vos projets futurs :octocat: !

Quelques précisions

En plus de faciliter la collaboration en équipe via des boîtes à outils, cet exercice a un autre objectif.

Le développement en réalité augmentée (AR) que vous allez réaliser devra être compatible avec plusieurs plateformes comme ARCore, ARKit, Vuforia, Quest 3, Pico, HoloLens, Magic Leap, etc. Nous aimerions avoir un projet Unity qui fonctionne sur tous les casques, mais la réalité est différente.

Travailler sous forme de boîtes à outils permet d’avoir une version Unity adaptée à chaque casque et à chaque plateforme de distribution du jeu.

Cela demande plus de temps, de discipline, de patience, et un effort pour rester pragmatique. Mais c’est, en théorie, la manière idéale de travailler… si nous n’étions pas parfois humainement paresseux 😜.


Allons-y étape par étape

Créer un compte GitHub

image
https://github.com/signup?ref_cta=Sign+up

Télécharger l'application GitHub

image
https://github.com/EloiStree/HelloUnityKeywordForJunior/issues/57

Astuce : Utilisez la console

Bien que les interfaces graphiques soient très utiles, le terminal (ou la console) est souvent bien plus rapide, dans 30 à 60 % des cas.

Astuce : Utilisez Fork

Même si la console est rapide et montre votre maîtrise de Git, quand il s'agit de collaborer sur le long terme avec plusieurs versions de votre logiciel, un petit graphique ne fait jamais de mal 😜

Créons un répertoire

Nous allons créer un dossier que vous pourrez partager, appelé répertoire : image

Créer un boite à outils pour travailler en groupe

Avant tout chose, il nous faut créé un répertoire pour notre boite à outils.

image
https://github.com/EloiStree/2024_09_26_MonPackageQuai10

image

Documentation :

https://docs.unity3d.com/Manual/upm-manifestPkg.html

image
https://github.com/EloiStree/2024_09_26_MonPackageQuai10/blob/main/package.json

{
  "name": "be.elab.mypackquai10",
  "version": "0.0.1",
  "displayName": "Quai 10 Pack Eloi",
  "description": "This is my space in the Quai10 Nid Street AR project",
  "unity": "2019.1",
  "unityRelease": "0b5",
  "documentationUrl": "https://github.com/EloiStree/HelloGitForUnity3D/issues/32",
  "changelogUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "licensesUrl": "https://en.wikipedia.org/wiki/Beerware",
  "dependencies": {
    "com.unity.inputsystem": "1.7.0",
    "com.unity.probuilder": "5.2.3"
  },
  "samples": [
    {
      "displayName": "Demo Scene",
      "description": "Example d'utilisation de l'outil.",
      "path": "Scene/Demo"
    }
  ],
  "author": {
    "name": "Eloi Stree",
    "email": "streeeloi@gmail.com",
    "url": "github.com/eloistree"
  }
}

Cloner le dépôt :

image

git clone https://github.com/EloiStree/2024_09_26_MonPackageQuai10.git

image
image
image

image
image

Ajouter votre nom, prénom et une image pour test :

image
image

image

Mettons le package à jour pour vérifier 😊 :

image
image

Message d’Unity3D concernant les fichiers .meta :

L'éditeur Unity3D nous signale que certains fichiers .meta sont manquants. Cela n’a rien à voir avec Facebook, ces fichiers contiennent des métadonnées spécifiques à Unity. Il est nécessaire de laisser Unity les générer à partir d'un autre projet.

Création d'un projet "Quarantine" :

Créez un nouveau projet. image

Cela peut prendre du temps, alors prenez un café ou amusez-vous avec un petit jeu sur Scratch 😉. image

Copier les fichiers dans le nouveau projet :

Copiez votre répertoire dans le dossier "Assets" du nouveau projet.

image

Retourner dans Unity pour lui laisser générer les .meta image

Les fichiers .meta devraient maintenant être créés :

Une fois dans Unity3D, les fichiers .meta devraient être générés. Donnez un titre à votre commit, et enregistrez-le.

image

Premier commit :

Félicitations, vous venez de faire votre premier commit 🎉 ! (en plus de ceux que GitHub a automatiquement créés pour vous). Un commit correspond à une sauvegarde locale de votre travail.

Effectuer un "push" pour mettre le commit en ligne :

image

Les fichiers .meta devraient maintenant être visibles en ligne.

image

Mise à jour de votre projet :

Si vous mettez à jour votre projet, vous devriez obtenir quelque chose comme ceci : image

Parfait 🧙‍♂️ !

Maintenant, notre objectif est de partager un projet simple comprenant des cubes et des formes rondes, représentant un jeu. Je vous laisse créer un prefab avec un cube et votre avatar dans une scène, que vous pourriez nommer par exemple : Demo Quai10 Cube.

Organisation des assets :

Tout bon projet doit être organisé. Je vous invite à créer les dossiers suivants :

image

Une fois organisé, suivez les étapes habituelles :

Et voilà ! 🎉 Nous avons établi un lien entre votre espace de travail et d'autres projets qui utilisent vos outils.

Un dernier point :

Si vous travaillez en équipe, il est essentiel d’avoir un espace commun et un référentiel partagé. Mais cela, c’est le sujet de notre prochain atelier 😉

EloiStree commented 1 month ago

Travailler sur le même référenciel via boite à outils.

Nécessite d'avoir faire l'exercice précédent sur la création d'une boite à outils.

Téléchargeons le scan de Quai 10:

Step by step: créer un prefab à votre nom

Step by step: ajouter les prefabs à un projet commun

EloiStree commented 1 month ago

d

EloiStree commented 1 month ago

Exercice similaire à Mons Juillet 2024 :

EloiStree commented 1 month ago

Suggestion

image

📸 Prenez une photo de cette carte chaque jour de la formation Street AR, suivie d'une photo des conditions météorologiques actuelles.

L'objectif est de pouvoir utiliser ces photos dans le cours actuel et ceux à venir. La photo des conditions météorologiques servira à adapter l'ambiance du jeu au temps réel.

EloiStree commented 1 month ago

Add me to manifest.json :

    "be.elab.3dbenchy": "https://github.com/EloiStree/2024_09_14_3DBenchy.git",
    "be.elab.charleroifort": "https://github.com/EloiStree/2024_09_25_Charleroi1666.git",
    "be.elab.developernote": "https://github.com/EloiStree/2024_08_09_DeveloperNote.git",
    "be.elab.irctoy": "https://github.com/EloiStree/2023_09_15_IToyControllerRC.git",
    "be.elab.quaiboatnidar": "https://github.com/EloiStree/2024_09_23_Quai10Boat.git",
    "be.elab.startpackquaiscan": "https://github.com/EloiStree/2024_09_25_StartPackQuai1666.git",
    "be.elab.quaimeasure": "https://github.com/EloiStree/2024_09_22_Quai10Mesh.git",
    "be.elab.quickfollowit": "https://github.com/EloiStree/2024_09_16_QuickFollowIt.git",
    "be.elab.watchexecutetime": "https://github.com/EloiStree/2024_04_18_WatchExecuteTime.git",
    "be.elab.zcharleroiz": "https://github.com/EloiStree/2024_07_30_ZCharleroiZ.git",

    "com.unity.inputsystem": "1.7.0",
    "com.unity.probuilder": "5.2.3",