Open EloiStree opened 3 months ago
Quatre à cinque participants ont déjà réalisé l'exercice avec Scratch. Je vais donc passer directement à Unity3D, tout en apportant un soutien supplémentaire aux nouveaux le premier jour.
Rigidbody
à un cubeCette semaine, nous nous concentrons sur C# plutôt que sur Unity3D.
Étapes à suivre :
Créer votre premier KillDozer :
Votre première IA (^^')... façon de parler:
Cassons tout sur Android 👷♀️:
Ajoutons un petit UI pour bouger
Avant de continuer l'exercice pour découvrir les tableaux et les boucles, nous avons créé un petit niveau avec des points à attraper et un compteur de temps.
Nous avons codé cela avec les étudiants des groupes de découverte :
Nous allons donc préparer le terrain pour le projet KillDozer.
{
"be.elab.besttiming": "https://github.com/EloiStree/2024_09_06_BestTimingScore.git",
"be.elab.irctoy": "https://github.com/EloiStree/2023_09_15_IToyControllerRC.git",
"be.elab.kapla": "https://github.com/EloiStree/2024_10_06_KaplaPlanksPack.git",
"be.elab.netshortspace": "https://github.com/EloiStree/2024_10_02_32767MMPlayZone.git",
"be.elab.patounerace": "https://github.com/EloiStree/2024_10_02_PatouneRace.git",
"be.elab.patouneracedemo": "https://github.com/EloiStree/2024_10_05_PatouneRaceDemo.git",
"be.elab.toytank": "https://github.com/EloiStree/2024_10_05_KidToyTankTreadModeCode.git",
"com.unity.inputsystem": "1.7.0"
}
Projet pour commencer directement l'exercice :
SharpThemAllWithDozer
Vidéo montrant comment nous avons préparé ce projet :
Suite:
in
et les out
La 3D 🥰 :
Fusion et Blender :
ProBuilder :
Créer: 0:00 Installer Unity 1:03 Installer Unity Hub et vérifier l'installation (Android, Java, Visual Studio, WebGL, IL2CPP) 2:23 Créer un projet - Universal Render Pipeline 2:38 Télécharger le template, nom et chemin du projet 3:03 Stocker le projet près de la racine, sauvegarde cloud 4:50 Présentation de Unity 3D Game Engine 7:33 Lumière et caméra 9:45 Game et scène Unity3D 11:26 Créer des cubes 16:25 Ajouter un Rigidbody 17:15 Play Mode 20:10 Créer un cube bulldozer 24:05 Bouger et tourner 25:01 Créer un script de bulldozer 29:09 Qu'est-ce qu'un script MonoBehaviour ? 30:19 Hello World en console 34:06 Translate et GPT 39:14 Position et Update 39:58 Move Forward 41:04 Delta Time 44:33 Téléportation derrière un mur 47:42 Ajouter un pourcentage 49:59 StackOverflow et Forum Unity 56:05 Créer un bâtiment pour le KillDozer avec des prefabs 58:52 Casser un bâtiment :) 1:00:00 Caméra en TPS 1:01:08 Récupérer un objet en Play Mode avec un prefab 1:07:36 Jouer avec les prefabs des bâtiments 1:10:33 Écouter les touches de clavier à l'ancienne 1:26:12 Utiliser "if" pour des vitesses différentes 1:26:12 Utiliser une variable locale 1:28:18 Extraire une méthode 1:31:42 Créer des setters 1:34:55 Utiliser "if" pour restreindre une donnée 1:40:39 Commenter une méthode avec /// 1:46:22 Clavier EN vs FR 1:49:14 Le Input Action System 1:50:35 InputActionReference 1:52:02 L'Asset Store et Rewired 1:52:49 Installer Input depuis le registre Unity 1:55:41 Redémarrer Unity après installation d'Input 1:59:26 Créer le mapping de l'Input de Unity3D 2:02:15 Utiliser une valeur en axis 2:03:15 Ajouter des touches de clavier 2:06:16 Ajouter une manette 2:08:35 Lire une valeur Float 2:10:34 Activer les inputs 2:12:59 Fin de vidéo et introduction à la suivante
Bouger:
0:00 Introduction 0:19 Créer un script d'AI 1:58 Référencer un autre script 3:02 Utiliser un transform pour viser un point 5:13 DrawLine 5:55 Ajouter une position de source 6:39 If condition mal fermée dans une méthode 9:08 NotImplementedException 9:08 Préparer les méthodes "isLeft", "isFront", "isRight" 13:20 Faire tourner avec une référence 14:53 Ajouter des variables membres avec Range et SerializeField 18:19 Ajouter un tooltip 20:11 Créer des variables de debug 27:11 Utiliser Vector3.Angle 28:58 Relocaliser et aplatir une direction 36:20 Utiliser les propriétés 37:16 Vector3.SignedAngle 44:39 Vérifier le code "left", "right", et "front" 48:52 Faire avancer le tank 50:56 Inverse Kinematics 55:17 Créer des variantes de KillDozer 56:52 Red Dot, ancien et nouveau système d'Input
Android: 0:00 Introduction 3:05 Les Vector2 6:37 Utiliser plusieurs caméras 11:23 Faire que la caméra suive une cible 13:58 Placer la caméra en vue TPS et FPS 21:26 Old Input ScreenPosition 28:23 Conversion de pixels en pourcentage d'écran 34:08 Passer de la souris à un joystick (0.5, 0.5) 37:00 Exporter l'application sur Android 37:31 Utiliser SCRcpy pour Android 38:29 Passer le téléphone en mode développeur 40:36 Configurer le projet pour Android 42:07 Définir le nom du package 43:14 Version de l'application 44:52 Choisir l'API cible 48:00 Conflit entre l'ancien et le nouveau système d'input 51:23 Convertir le script Input en InputActionReference 55:08 Utiliser ReadValue float 56:23 Créer un mapping Input Action 57:28 Ajouter un map et une action en Vector2 58:45 Ajouter pointeur, laser, souris et doigt 59:15 Ajouter la pression 1:01:15 Ajouter les mappings à l'Input Reference 1:01:46 Activer les touches à écouter 1:02:32 Démo avec la souris 1:02:43 Configurer le build pour le nouveau système seulement 1:04:25 Builder 1:08:42 Démo sur Android 1:08:55 Ajuster lumière et aliasing 1:10:54 Ajouter la touche "Restart Game" 1:11:47 Cancel any 1:14:01 Créer un InputActionRef vers UnityEvent 1:15:15 Relancer le niveau en cours 1:18:44 Démo : Recharger la scène
Depuis un UI: 0:00 Ajouter le code précédent pour un bouton générique 3:07 Restart du niveau dans un script séparé 5:33 Lier le code du clavier pour redémarrer les niveaux 6:52 Créer un script pour bouger avec deux sliders 8:16 Créer un Canvas UI 8:43 Ajouter un slider 8:52 Positionner le slider en pourcentage 9:45 Créer un deuxième slider vertical 10:15 Utiliser UnityEvent Single de l'UI Unity 11:25 Configurer le Event System pour l'UI 12:21 Comparaison UnityEvent vs Slider en code 13:48 Lire les sliders en code 14:33 Problème de responsive dans Unity3D 15:55 Canvas Scaler 17:30 Utiliser des pixels au lieu de pourcentages 18:04 Ajouter un bouton "Restart" 20:26 Organiser le dossier pour préparer l'export 24:01 Vérification finale du fonctionnement
Configurer un terrain d'entrainement:
0:00 Cloner Patoune Race
5:45 Créer un package de démo
9:41 Importer la zone de jeu
13:27 Ajouter le Dozer avec un point rouge
14:48 Ajouter un sol et une zone de jeu de 65 m
18:03 Ajouter de l'eau
22:54 Ajouter les caméras
24:15 Ajouter la scène au projet
28:12 Créer un "Patoune"
28:29 Ajouter un collider Checker
32:29 Ajouter un checkpoint manager
40:13 Démo du manager
41:53 Ajouter le meilleur temps pour le jeu
1:06:03 Randomiser les points de passage
1:24:12 Démo
1:35:09 Sauvegarder le package du Dozer en version release
1:41:44 Transformer un git en package pour le manager
1:43:42 Créer un package sur Git pour la démo
1:56:23 Vérifier que ça fonctionne
1:57:55 Vérifier que ça fonctionne en environnement isolé
2:03:05 Créer un projet Unity
2:03:45 Créer un fichier .gitignore
2:05:02 Ajouter les packages pendant le démarrage
2:10:47 Créer une scène dans le projet à partager
2:18:04 Configurer le projet pour Android
2:20:31 Passer le projet sur Android
2:21:19 Build et run, vérifier le bon fonctionnement
2:27:34 Déplacer le projet, ajouter commit, pull et push avec ignore
2:28:38 Vérifier la taille des fichiers avec WinDirStat
2:31:26 Sauvegarder et terminer
Fonctionnalités à ne pas manquer :
getters
et setters
en Javagetters
et setters
en C#if
, else
, switch
+
, -
, *
, /
, %
a = a + 1
, a += 1
, a++
String
et char
List
et Array
[SerializedField]
[System.Serializable]
Invoke
et InvokeRepeating
static
singleton
T
)MonoBehavior
Introduction de l'atelier:
https://youtu.be/RMhXeHfibh4
L'exercice est simple : vous avez un drone. Votre objectif est de le maintenir en vie le plus longtemps possible en utilisant uniquement C#.
Vous ne devez pas étudier Unity3D, car cette semaine est dédiée à C#.
Le but de la semaine est de pratiquer C# jusqu'à vendredi :
Start
etUpdate
Planning :
Débutant : Réussir à attraper tous les points avec un drone "multi-terrain". Junior : Réussir à attraper tous les points avec un drone volant et un sous-marin. Médior : Utiliser tous les drones à disposition pour attraper tous les points en un temps minimum. Senior : Même exercice, mais avec le mode "Bullet Hell". Senior+ : Même exercice, mais avec 1 000 à 16 000 drones.
Sharp Them All Challenge:
Formation: