Maîtrisez les fondamentaux de Unity - Développeur vol 2
- Descrição
- Currículo
- FAQ
- Revisões
Bienvenue sur ce second volume, ciblé sur les fondamentaux du moteur de jeux Unity 2018-2019, orienté clairement pour les jeux vidéos.
Dans ce cours vous allez apprendre à utiliser les principales fonctionnalités de Unity 2018-2019, tout en codant en C# .
Une introduction à la programmation orientée objet sous Unity sera aussi traitée afin de vous initier correctement au monde de la création de jeux vidéos et applications.
Il est à noter qu’il est préférable d’avoir des bases dans le langage C# avant d’aborder ce cours.
Vous en avez assez d’imiter un cours ?
Vous vous sentez incapables de personnaliser les contenus qu’on vous propose ou que vous trouvez sur internet?
Vous ne savez pas par où commencer votre jeu vidéo ?
Apprenez à apprendre !!
Réfléchissez par vous mêmes !!
A la fin de ce cours vous serez autonomes pour pouvoir créer votre propre jeu vidéo avec le thème de votre choix.
En apprenant les composants nécessaires d’un jeu vidéo et leur utilisation dans Unity, mais aussi comment trouver les informations ou ressources utiles, vous serez en mesure d’inventer VOS solutions.
NOTE : volume 3 en cours de réalisation : Programmation Orientée Objet C# pour les jeux Unity Développeur . Sortie prévue hiver 2020-printemps 2021.
Dernière mise à jour : 19 Mai 2020 puis le 06 Juin 2020
Ajout d’un Atelier IHM #niv 1 : composant Text et Images, notion de Canvas
Ajout d’un Atelier complet sur la notion de Prefab : compatible Unity 2018 et 2019
Ajout d’un Atelier sur l’API de Unity afin de voir comment communiquer entre scripts et GameObject
Contenu
Dans un premier temps nous verrons comment installer Unity et démarrer un projet, tout en voyant une première approche du travail du Level Designer.
A la fin de cette partie vous aurez les outils et les ressources pour créer votre scène de jeu.
Puis nous verrons les composants essentiels de Unity comme les Colliders ou encore les Rigidbody.
Un Atelier est aussi dédié à l’utilisation des lumières (Light) dans Unity.
Les notions sur les Input sont réparties en plusieurs Ateliers. L’utilisation des touches clavier est traitée dans l’Atelier “clavier”, dans lequel nous faisons un script de déplacement d’un personnage. Et la souris est traitée dans l’Atelier “zoom avec la molette de la souris”
L’Atelier Camera vous présente les différents types de caméras possible dans Unity, tout en vous proposant, en exercice d’implémenter le fameux effet Shake Camera !
Plusieurs ateliers sur les interfaces utilisateurs (IHM) avec le package Unity UI (uGUI) sont prévus. Un atelier est déjà publié.
Un Atelier dédié à l’utilisation de Prefab et du nouveau Prefab Workflow depuis Unity 2018, notions essentielles de Unity.
Afin de pouvoir communiquer entre scripts et GameObject, un atelier dédié est proposé afin de découvrir 3 méthodes différentes et complémentaires.
Les notions d’objets et de programmation orientée objet seront introduites afin de vous initier au codage sous Unity en C#, tout en utilisant l’API de Unity.
Afin de mettre en pratique ce que vous apprendrez, il est prévu des Ateliers de types projets. Le premier porte sur un mini-jeu 2D, un mix entre un Bubble Shooter et un Walll Breaker.
Retrouvez le jeu complet, pour le fun sur:
Apple Store : lien dans la première session de l’Atelier
Google Play: lien dans la première session de l’Atelier
Programme à venir
Nous verrons d’autres composants essentiels de Unity comme les Input pour mobiles.
Nous aborderons par la suite, la gestion des animations 2D et 3D.
Enfin nous verrons la gestion des interfaces utilisateurs (UI/UX), des sons, ainsi que des astuces de développement ou encore des études de cas.
Ce cours est compatible Unity 2017, Unity 2018, Unity 2019, Unity 2020.
Si vous rencontrez des difficultés en cours d’apprentissage, vous pouvez utiliser la section Questions/Réponses et je ferai de mon possible pour vous débloquer.
Commencez dès maintenant, au travers de ce second volume, votre formation “Développeur Unity”.
Rejoignez le cours, en cliquant sur Suivre ce cours en haut à droite.
-
3Introduction à la prise en main de UnityTexto
intro de la section
-
4Unity ...c'est un jeu non ?Vídeo Aula
Première présentation et autres alternatives
-
5Game Engine ou Framework ?Vídeo Aula
Différence entre un moteur de jeu et un framework
-
6Présentation de Unity - LicensesVídeo Aula
Présentation du site officiel de Unity et des licences existantes
-
7Les licences Unity en 2020Texto
-
8Installation de UnityVídeo Aula
Installation d'une version de Unity depuis UnityHub
-
9Création d'un nouveau projetVídeo Aula
Création d'un nouveau projet avec Unity Hub
-
10Espace de travail de l'éditeurVídeo Aula
Présentation des fenêtres principales de l'éditeur de Unity
-
11EXERCICE: organiser son espace de travailVídeo Aula
Premier exercice du cours
-
12Choisir ses assets pour un prototypage de jeuVídeo Aula
comment trouver des assets gratuits pour commencer le prototypage de votre jeu vidéo ?
-
13Placer correctement un asset dans la scèneVídeo Aula
Comment ajouter des éléments dans la scène depuis le dossier Assets ? Contrôle systématique de la position ...
-
14Raccourcis claviers et gizmosVídeo Aula
Présentation de quelques raccourcis claviers hyper utiles...
-
15Outil Transform ToolsVídeo Aula
Découvrez le nouvel outil Transform Tools depuis Unity 2017
-
16World et Local spaceVídeo Aula
Cette notion est fondamentale dans le développement
-
17Introduction à l'Atelier sur les collisionsTexto
Dans tous les jeux et beaucoup d'applications, il est nécessaire de savoir détecter des collisions. Sans même parler de notion de Physics 3D (Physique), avec la gravité par exemple, il nous faut comprendre les colliders et collision avant d'aller plus loin.
-
18Sans Rigidbody rien n'est détecté !Texto
Retrouvons le composant Rigidbody, vu dans la session précédente, comme étant essentiel pour les collisions.
-
19Utiliser les callbacks de collisions de UnityTexto
Une fois équipé d'un Rigidbody, on peut scripter en C# l'interaction qui doit avoir lieu. Utilisation des callbacks de Collision de Unity.
-
20Prise en main du projet CheckPointTexto
Voici comment procéder pour suivre cette mise en application sur les collisions avec Unity
-
21Préparer le Dragon aux collisionsVídeo Aula
Pour commencer nous allons gérer tout d'abord notre personnage: le Dragon
Comme nous voulons que ce soit notre Dragon qui détecte les collisions, nous lui mettons un composant Rigidbody, et un composant Collider pour définir son Volume de collision.
Retrouvez la vidéo timeline, sans parole, mais avec explications incluses.
-
22Préparer le CheckPoint aux collisionsVídeo Aula
On continue par la préparation du CheckPoint du point de vue des collisions
Comme nous voulons que ce soit notre Dragon puisse entrer en collision avec le CheckPoint, et donc que l'on puisse agir en cas de détection, nous lui mettons un composant Collider pour définir son Volume de collision.
Retrouvez la vidéo timeline, sans parole, mais avec explications incluses.
-
23Jouer avec IsTriggerVídeo Aula
Et si on testait différents réglagles ?
La vidéo ci-dessus présente 3 tests avec des réglages différents sur le paramètre IsTrigger.
Cela vous permet de bien voir comment se comporte les uns et les autres selon les réglages.
Il est à noter que dès que l'on désactive sur le dragon IsTrigger, ce dernier est impacté par la collision, et ce grâce au moteur Physique de unity, qui agit au travers du composant Rigidbody. Le CheckPoint n'a aucune réaction, lui, car il n'a pas ce composant !
Dans le cas d'un jeu comme Angry Birds, qui exploite pleinement le moteur physique, il faudrait bien sûr ajouter le composant Rigidbody au CheckPoint !
-
24Détecter la collision avec le ChekPointVídeo Aula
Finalisons cet Atelier en scriptant en C# la détection de la collision
Dans cette session nous allons utiliser les 3 méthodes de callback de type IsTrigger, afin de pouvoir détecter l'entrée, le fait de rester, ainsi que la sortie de la zone de collision du ChekPoint.
Retrouvez la vidéo timeline, sans parole, mais avec explications incluses.
-
25Encore d'autres cas d'étudesTexto
Voici d'autres vidéos sur le thème des collision avec Unity
-
26Conclusion sur le projet CheckPointTexto
Bilan de l'Atelier
-
27Les différents types de lumières dans UnityTexto
Découvrez les différentes lumières existantes dans Unity. Apprenez à les connaître pour mieux vous en servir.
-
28Directional LightTexto
-
29Point LightTexto
Un autre type de lumière très utilisé dans Unity.
-
30Spot LightTexto
On mettrait pas des spots dans la cuisine ?
-
31Area LightTexto
Voici un type de lumière qui va vous forcer à faire un Bake !
-
32Créer un material emissifTexto
Un Material émissif a la propriété d'émettre de la lumière sur sa surface.
-
33Prise en main du projet: Imite une mise en lumièreTexto
Prise en main du projet Imite une mise en lumière
-
34Correction du projet: imite une mise en lumièreTexto
Comment faire et le piège caché révélé !
-
35Présentation de l'Input Manager de UnityTexto
L'Input Manager c'est quoi ?
-
36Utiliser les Axes de l'Input ManagerTexto
Voyons maintenant comment utiliser un Axe par script C#
-
37Utiliser l'Axe JumpTexto
Cas d'étude plus précis sur l'axe Jump en guise de mise en pratique
-
38ATELIER Keyboard: IntroductionTexto
Présentation de l'Atelier
-
39Atelier Keyboard : mise en place de la scèneVídeo Aula
-
40Premier script de déplacement 3DVídeo Aula
En utilisant la méthode Input.GetKeyDown(), nous allons coder notre premier script de déplacement
Retrouvez le lien vers la vidéo #DebugZone n°1 sur l'erreur rencontrée dans cette session: https://www.youtube.com/watch?v=w0V713KJjFM&feature=youtu.be (publiée Samedi 25/04/2020)
-
41Faire une rotation 3D par scriptVídeo Aula
Ici nous complétons le script initial pour pouvoir faire une rotation avec les touches de son clavier
-
42Ajustements du script initialVídeo Aula
Maintenant que le script est fonctionnel nous allons ajuster le script selon nos besoins.
-
43Utiliser le Time.deltaTimeVídeo Aula
Nous utilisons ici une notion importante dans le développement de jeu vidéo !
-
44Créer sa première Camera dans le jeuTexto
Tout jeu dispose au moins d'une caméra, sans cela les joueurs ne verront rien à l'écran !
-
45Notion de Camera OrthographiqueTexto
Utile principalement pour les jeux 2D, cette caméra est essentielle
-
46Notion de Camera PerspectiveTexto
Indispensable aux jeux 3D, la caméra perspective est un pilier dans Unity.
-
47Notion de Physical CameraTexto
Dernière possibilité sur les types de Caméras dans Unity
-
48Exercice: mission shake - introductionVídeo Aula
Présentation de la mission
Nous allons maintenant utiliser une caméra dans notre scène, tout en lui ajustant un effet Shake.
Cet effet sera pour cette première méthode, basé sur un script qui agira sur le composant Transform de notre GameObject MainCamera.
Retrouvez le package de démarrage de la mission . -
49Exercice: solution avec Implémentation du Shake par codeVídeo Aula
Utilisons le Transform pour remuer notre Caméra
Le code est issu d'un dépôt online, et il a été crée par "ftvs".
La classe est utilisée directement dans notre scène, avec quelques ajustements cependant pour ajuster l'effet. Mais on ne change pas le concept initial du script C#.Sachez que l'utilisation systématique de la méthode Update n'est pas conseillée. En effet rappelez vous bien que toutes les méthodes update de tous les script, sont appelées en boucle de manière très rapide !
Ainsi il est possible de conserver l'esprit de ce script, tout en le couplant avec l'utilisation.
-
50Implémentation du Shake sans coderTexto
Prenons un exemple trouvé sur la toile ...
-
51Théorie des input souris avec UnityTexto
Rappels essentiels avant de commencer
-
52Zoom avec une Caméra 2DVídeo Aula
Selon la caméra à utiliser la technique de zoom est différente...
-
53Zoom avec une Caméra 3DVídeo Aula
Utilisons maintenant un autre paramètre pour le zoom avec une caméra 3D
-
54Limiter le zoomVídeo Aula
Il faut maintenant limiter les valeurs possibles du zoom, afin de finaliser le script
-
55Introduction et présentation des autres solutions pour gérer une IHMTexto
uGUI est apparu sur les version 5.x de Unity ...il y avait quoi avant ?
-
56Notion de CanvasTexto
Le Canvas est une des briques essentielles de Unity GUI
-
57Positionner un élément d'interface uGUITexto
Comment disposer nos éléments d'interface ?
-
58Créer un interface simple avec uGUITexto
Utilisation de 2 composants principaux
-
59Customiser la police des boutons et textesTexto
On va pas toujours utiliser la police par défaut de unity !
-
60Mise en application uGUI -niv1Texto
C'est à vous !
-
61Conclusion de l'Atelier uGUI - niv1Texto
Avez-vous réussi l'exercice précédent ?
-
62Introduction de l'Atelier PrefabVídeo Aula
Introduction de l'Atelier
-
63Préparer et créer un PrefabVídeo Aula
Processus de création d'un prefab
-
64Modifier un prefabVídeo Aula
Comment modifier un prefab après coup ? Edition d'un prefab (prefab workflow)
-
65Instantier un prefab existantVídeo Aula
Création de clone de Prefab dynamiquement par script
-
66Choisir un Parent à l'instantiationVídeo Aula
Ajuster la parenté (Parent-Child) lors de l'instantiation
-
67Conserver la rotation initiale du prefabVídeo Aula
Ajuster le Quaternion lors de l'instantiation
-
68Nested prefab et Variant : Prefab workflowVídeo Aula
Comment gérer les Nested Prefab et les "Variant" (Variantes)
-
69Utilisation des prefabs avec des animations et navmeshVídeo Aula
Mise en application avec un prefab plus évolué
-
70Conclusion de l'AtelierVídeo Aula
Conclusion
-
71Présentation de l'AtelierVídeo Aula
Présentation et objectifs
-
72PARTIE 1: Introduction de l'Atelier APIVídeo Aula
Introduction et présentation de la scène de travail
-
73Récupérer une variable d'un même GameObjectVídeo Aula
utilisation de GetComponent pour changer l'orientation du Player
-
74Présentation de la documentation associée à la méthode GetComponentVídeo Aula
Comment utiliser cette méthode ?
-
75Récupérer une variable d'un autre scriptVídeo Aula
Récupération du score donné par l'item
-
76PARTIE 2: staticité - cas non staticVídeo Aula
Préparons l'étude sur l'utilisation de la staticité en commençant par un cas de comparaison.
-
77Etude du cas statiqueVídeo Aula
Modification des scripts précédents pour prendre la voie statique.
-
78EXERCICE: modifier la dépendance de GameHolderVídeo Aula
Appliquez ce qui a été vu sur la session précédente
-
79Correction exercice staticitéVídeo Aula
Correction de l'exercice précédent
-
80PARTIE 3: envoyer un message à un GameObjectVídeo Aula
Présentation de la partie 3
-
81Présentation de la documentation associée au envoi de "messages"Vídeo Aula
Comment utiliser les méthodes ?
-
82Bloquer les input à la pauseVídeo Aula
Envoyer un message au Player pour bloquer ses input.
-
83Modifier le comportement des items à la pauseVídeo Aula
Envoyer un message à plusieurs GameObject en même temps !
-
84Conclusion de l'Atelier APIVídeo Aula
-
85Liens des tutoriels indiqués dans les vidéosTexto
liens ressources