Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Tutoriel 6 : Follow Camera, Confiner, State-Driven Camera System, Animator Trigger

IUT d'Orsay, Université Paris-Saclay

Objectifs

Nous allons apprendre à :

CinemachineFollow Camera

  1. Regardez cette vidéo sur Cinemachine.

  2. Dans Window > Package Management > Package Manager, installez Cinemachine.

  3. Dans Hierarchy, créez une Cinemachine > Targeted Camera > Follow Camera et renommez-la Follow Camera.

  4. Choisissez Player comme Tracking Target et None comme Rotation Control.

  5. Vérifiez que votre la composante Cinemachine Brain de votre Main Camera est activée.

  6. Jouez avec les paramètres Lens et Position Damping et testez votre caméra en mode Play.

Confiner

  1. Dans Background Tilemap, ajoutez une composante Polygon Collider 2D et définissez une grande zone rectangulaire de confinement dans laquelle la caméra peut bouger. Cette zone va définir le premier niveau du jeu.

Cette zone peut toujours être modifiée plus tard selon le design de votre niveau.

  1. Dans la Follow Camera, ajoutez l’extension Cinemachine Confiner 2D et choisissez comme Bounding Shape 2D Background Tilemap.

State-Driven Camera System

Maintenant, nous allons créer plusieurs types de caméras et des transitions entre les différents caméras pour donner un aspect plus dynamique à notre jeu.

Ces caméras vont dépendre de l’état de Player :

  1. Dans Hierarchy, créez un objet vide Cameras.

  2. Créez Cinemachine > State-Driven Camera.

  3. Rendez Main Camera et State-Driven Camera enfant de Cameras.

  4. Renommez Follow Camera à Run Camera et rendez-la enfant de State-Driven Camera.

  5. Dupliquez Run Camera deux fois et renommez-les Idle Camera et Climb Camera. Supprimez les autres enfants de State-Driven Camera s’il en existe.

  6. Jouez avec la Lens de ces caméras pour implémenter les effets mentionnés précédemment.

  7. Dans State Driven Camera, choisissez Player comme Animated Target.

  8. Dans la liste de State, ajouter les états Idle, Running, Climbing et les caméras correspondantes.

  9. Changez le temps de Default Blend > Ease In Out pour rendre les transitions entre les caméras plus fluides.

Death

Nous voulons permettre à Player de “mourir” quand il touche la layer de l’Enemy.

  1. Ajoutez l’attribut bool isAlive = true dans PlayerMovement.cs et des conditions dans Update, OnMove et OnJump pour que le code s’exécute seulement si Player isAlive.

  2. Faites une animation Death avec le sprite characters_6 et ajoutez-la à l’Animator avec une transition de Any State vers Death utilisant un paramètre Trigger nommé Dying.

  1. Définissez une fonction void Die() qui sera appelée dans Update de PlayerMovement.cs.

  2. Dans Die, ajoutez une condition qui va vérifier si myBodyCollider a touché la layer de l’Enemy et qui va mettre isAlive à false et myAnimator.SetTrigger("Dying") pour commencer l’animation Death de Player.

Nous allons ajouter un “effet de mort à la Mario” à Player.

  1. Dans Die, désactivez myBodyCollider avec myBodyCollider.enabled = false (de même pour myFeetCollider).

  2. Ajoutez un attribut [SerializeField] float deathKick à PlayerMovement.cs et ajoutez une ligne de code myRigidbody2D.linearVelocity = new Vector2(0f, deathKick); dans Die pour donner une impulsion verticale à Player.

  3. Pour figer la caméra quand Player meurt, importez using Unity.Cinemachine dans PlayerMovement.cs et ajoutez l’attribut [SerializeField] CinemachineStateDrivenCamera stateDrivenCamera;. Glissez State-Driven Camera vers l’attribut dans l’Inspector. Puis désactivez la caméra avec stateDrivenCamera.enabled = false; dans Die.

Water and Spikes

  1. Ajoutez des colliders à la Water Tilemap avec l’option Trigger.

  2. Implémentez la mort de Player quand il touche la Water Tilemap.

  3. Utilisez tout ce que vous avez appris pour créer des pics (sprite tiles_126) qui tuent le joueur quand il les touche avec ses pieds, mais pas quand il les touche avec son corps : il peut ainsi marcher à travers les pics, mais pas sauter dessus.