Cours 3¶
Raccourcis¶
- Q :
View - W :
Move - E :
Rotate - R :
Scale - T :
Rect - Y :
Transform
Scene¶
Les scènes en Unity sont différents lieux ou interfaces qui sont traditionnellement séparés par un écran de chargement.
Créer une nouvelle¶
Dans le panneau Project :
- 📁 Assets > 📁 _ > 📁 Scenes
- Clic-droit >
Create>Scene>Scene
Changement de scène avec CES¶
Collider Event > Actions > Scene

Pour changer de scène à la collision, il ne suffit que de glisser la scene dans le champ Scene Asset.
Pour les autres options, voici l'explication :
| Load | Load Async | |
|---|---|---|
| Additive | Petite scène, transition simple (peut saccader) | Grosse scène, pour éviter le freeze (Permet un écran de chargement) |
| Additive | Petit overlay (UI, menu) | Streaming de contenu en cours de jeu |
Skybox¶

La configuration du skybox se trouve :
Window > Rendering > Lighting > onglet Environment > Skybox Material
Le Material par défaut est Default-Skybox.
Pour en ajouter d'autres, il faut créer d'autres Material, mais nous n'en sommes pas encore à cet étape.
Avec l'aide de l'asset gratuit « Skybox Series Free », vous aurez d'autres options pour configurer Skybox Material.
Text (version express)¶

Pour ajouter du texte à une scène 3D, la façon rapide est d'ajouter :
Hierarchy> clic-droit >3D Object>Legacy>TextMesh- Changer le contenu du champ
Text - Modifier
Font Sizeà500 - Changer
Character Sizeà0.01
Changer la fonte¶
Télécharger une fonte sur Google Fonts. Exemple :
- https://fonts.google.com/specimen/Google+Sans
- Cliquer sur « Get Font »
- Cliquer sur « Download all » et chosir le chemin de sauvegarde
- Dézipper le fichier téléchargé
Dans unity :
- Dans 📁 Assets > 📁 _ : créer un nouveau dossier 📁 Fonts
- Glisser un fichier
.ttftéléchargé dans le dossier 📁 Fonts - Sélectionner le TextMesh dans le panneau Hierarchy
- Dans
Inspector>TextMesh>Font, glisser la fonte du dossier 📁 Fonts
Son¶
Avant l'ajout d'audio dans un projet, on doit avoir un "Audio Listener".
Il y en a déjè un par défaut d'assigné sur la caméra principale, mais c'est bon de le savoir quand même.
Trouver des sons¶
- Télécharger une piste sonore : https://pixabay.com/ ou https://tommusic.itch.io/free-fantasy-200-sfx-pack
Dans unity :
- Dans 📁 Assets > 📁 _ : créer un nouveau dossier 📁 Audio
- Glisser le fichier
.mp3téléchargé dans le dossier 📁 Audio
Ajouter une source audio¶
Hierarchy> clic-droit >Audio>Audio Source- Dans
Inspector>Audio Generator, glisser le fichier audio du panneau Project
Options
L'option Play On Awake coché, déclenche l'audio au chargement de la scène.
L'option Loop la fait boucler.
Personnage jouable¶

Dans les jeux en 3D, la gestion de la caméra se divise généralement en trois grandes catégories :
- Vue à la 1re personne : la caméra incarne les yeux du personnage, et les mouvements du joueur y sont directement appliqués

- Caméra fixe : le joueur observe le personnage qu'il déplace depuis un point de vue prédéfini

- Vue à la 3e personne : la caméra est placée derrière le personnage et suit l'ensemble de ses mouvements

Le contrôle d'un personnage nécéssite normalement un peu de code. Heureusement, Unity distribut gratuitement un asset de Character Controllers qui nous épargne la programmation.
Première personne¶

- Désactive ou supprime la « Main Camera »
- Ajoute le Character Controllers via le Asset Store
- Dans le panneau Project,
Assets>Starter Assets>Runtime>FirstPersonController>Prefabs, glisse NestedParent_Unpack sur la scène - Positionne le prefab au-dessus du sol
- Clic-droit sur l'objet dans le panneau
Hierarchy, puisPrefab>Unpack Completely - Dans NestedParent_Unpack, clic sur PlayerFollowCamera
- Pour que la caméra suive le personnage, du panneau Hierarchy, glisse
PlayerCapsulevers le champInspector>Cinemachine Camera>Tracking Target - Play
Contrôles
- W+A+S+D pour bouger
- Space pour sauter
- Souris pour regarder
Troisième personne¶

- Désactive ou supprime la « Main Camera »
- Ajoute le Character Controllers via le Asset Store
- Dans le panneau Project,
Assets>Starter Assets>Runtime>ThirdPersonController>Prefabs, glisse NestedParentCapsule_Unpack sur la scène - Positionne le prefab au-dessus du sol
- Clic-droit sur l'objet dans le panneau
Hierarchy, puisPrefab>Unpack Completely - Dans NestedParentCapsule_Unpack, clic sur PlayerFollowCamera
- Pour que la caméra suive le personnage, du panneau Hierarchy, glisse
PlayerCapsule>PlayerCameraRootvers le champInspector>Cinemachine Camera>Tracking Target - Play
Contrôles
- W+A+S+D pour bouger
- Space pour sauter
- Souris pour regarder
Troisième personne avec armature¶
- Suivre la même procédure que pour l'ajout d'un "ThirdPersonController", mais au lieu de "NestedParentCapsule_Unpack", choisir "NestedParentArmature_Unpack".


Le pack SyntyStudio contient plein de personnages en TPose :
. Par exemple, dans le dossier SyntyStudios > PolygonAdventure > Prefabs > Characters.
Parce que les personnages Synty sont humanoïdes, on peut s'en servir pour remplacer le manequin humanoïde par défaut.
- Dans
NestedParentArmature_Unpack>PlayerArmature>Geometry, désactive ou supprimeArmature_Mesh. - Glisse un prefab Character de Synty sous le dossier
Geometry - Clic sur Player Armature
- Trouve un
CharactersAvatar. Exemple :SyntyStudios>PolygonAdventure>Models>Characters. DéplierCharacterset on devrait y voirCharactersAvatar. - Glisse
CharactersAvatarvers le champAnimator>Avatar
Collider Event System, la suite¶
Maintenant, on veut que notre personnage interagisse avec CES.


Préciser la collision
Pour cibler uniquement la collision avec le personnage, on peut configurer le Collider Event

Conditions¶

Au cours 01, nous avons vu la notion de prérequis (inventaire, économie, progression, etc.). Elle nécessitent l'usage de conditions et nous verrons comment les configurer dans CES.
Exemple de la clé et la porte¶

Situation : Il faut la clé pour ouvrir la porte. Sans la clé, la porte reste fermée.
Étapes de réalisation :
- Créer une variable booléenne
hasKey
- Ajouter un CES qui permet de changer la variable à TRUE
- Dans la liste des actions, on a un changement de variable, mais on pourrait aussi ajouter le délenchement d'un son.
- Si un objet se trouve dans la zone (ex. : une clé en 3d), on pourrait aussi la faire disparaitre en même temps. - Ajouter un autre CES et lui appliquer une condition qui détectera si la variable est à TRUE

- Déterminer une action pertinente
Types de déclenchement d'actions¶
- Entrée (par défaut) : Se déclenche à l'instant où un objet entre dans la zone.
Ex. : prendre un objet - Présence : Se déclenche X secondes suite à une collision soutenue.
Ex. : Trop longtemps dans une zone de feu charge la scène Game Over
- Sortie : Se déclenche quand l'objet sort de la zone.
Ex. : Sortir d'une pièce ferme sa lumière
Démo¶

Compiler¶

Jusqu'ici, le jeu n'existe que dans l'éditeur.
Compiler (faire un build), c'est produire une application autonome pour un usage spécifique. Par exemple, faire un build Web pour publier sur itch.io , .exe pour Windows, .apk pour Android, etc.
File>Build Profiles> vérifie la Scene List (toutes vos scènes doivent y être glissé)- Dans la colonne de gauche, choisir un build profile (ex: Windows). S'il n'y en a pas, cliquer sur « Add Build Profile »

- Clic sur
Build - Enregistrer dans un dossier
Buildà la racine du projet (au même niveau que.gitignore) - Attends (c'est long la première fois), puis lance ton jeu comme une vraie application 🎉
Github + Build
Il n'est pas une bonne pratique de sauvegarder un build sur GitHub. C'est trop lourd.
Normalement, avec le fichier .gitignore pour Unity, les builds dans le dossier Build à la racine du projet seront ignoré par Git et c'est ce qu'on veut.
Au CÉGEP, on ne peut malheureusement pas installer de nouveaux Build Profile
Devoirs¶

Devoir - Unity
Protolude : Partie 2