Ressources Magic Makers

 

Site en maintenance

 
Nous sommes actuellement entrain de mettre à jour les ressources de ce site.
Pendant la mise à jour vous pouvez retrouver tous les nouveaux contenus sur le site
 

https://lp-magicmakers.fr/

 
 

Mécanismes de jeu

Tu vas pouvoir rajouter à ton jeu3D des mécanismes en suivant les tutos de cette page ! 

Sur cette page tu trouveras :

Créer une Killzone

Tu peux regarder cette vidéo tuto qui présente la création d’une Killzone pour ramener ton joueur au début du jeu s’il tombe !

Tu trouveras ci-dessous le tuto écrit ;

Principe du script

 

Pour créer une killzone nous allons utiliser les principes de collision expliqué ci-dessus et de déplacement d’objets. Tu peux regarder ces parties là avant.

Quand le joueur entre en collision avec un objet avec le tag “zone de mort”, le joueur retourne à sa position de départ. Pour cela on va changer son transform.position.

Nous avons aussi besoin de mémoriser la position de départ. Pour cela on va créer une variable pour stocker cette valeur et la récupérer dans la fonction Start() et pour récupérer la position de départ on va utiliser la variable transform.position.

Faire des Checkpoints

Le mécanisme des Checkpoints est proche du mécanisme des Killzone et nous allons reprendre le script Killzone pour le modifier légèrement. Si tu ne sais pas faire les Killzone, je t’invite à regarder cela avant!

Principe du script

Quand on récupère un objet, on change la position de réapparition du joueur quand il meurt. On utilise exactement le même mécanisme que celui utilisé pour fixer le point de départ initial, sauf que cette fois, c’est au moment de la collision qu’on récupère la valeur.

Attention ce script remplace le script killzone, il faut soit le modifier, soit le remplacer mais ne pas utiliser les deux en même temps.

 

Créer un Portail de téléportation

Pour changer la position d’un objet, il suffit de modifier la position de son transform. Pour cela on modifie la variable transform.position de l’objet. 

Tu peux regarder cette vidéo tuto qui présente Création d’un script pour un système de téléportation ! 

Tu trouveras ci-dessous le tuto écrit du mécanisme de jeu.

Principe du script

 

Voici un petit exemple de portail de téléportation qui téléporte le joueur vers un autre endroit. Dans ce script nous utiliserons les mécanismes de collision (plus d’explications sur cette page)

Lorsque le joueur rentre en collision avec un objet, le joueur est immédiatement téléporté à un autre endroit.

Pour ça on a besoin de la position d’arrivée pour y déplacer le joueur. Pour récupérer cette position, on utilise une variable publique arrivée qui contient l’objet où l’on veut faire arriver le joueur.

Pour accéder à la position à partir d’un objet il suffit d’écrire : objet.transform.position.

On peut s’inspirer de ce script pour en faire plein d’autres : déplacer un objet si on en touche un autre, créer des killzone, faire évoluer une position au cours du temps, faire faire des aller-retours à des objets…

Faire Apparaitre ou Disparaitre des Objets

On peut vouloir activer ou désactiver des objets pour différentes raisons : la porte n’apparaît qu’une fois les conditions de victoires remplies, quand on récupère un objet cela en fait apparaître un autre, les objets apparaissent au bout d’un certain temps puis disparaissent pendant un temps, un message apparaît quand on est suffisamment près d’un objet… 

Attention : Ce n’est pas la même chose que créer un nouvel objet, ici l’objet est déjà sur la scène et reste présent et on le rend visible ou non. 

Principe du script

Dans l’inspecteur Unity on peut facilement activer ou désactiver un objet :

Objet activé 
 
Objet désactivé

Dans le code, on peut gérer cela avec la fonction SetActive(). Par exemple, quand le jeu se lance on désactive l’objet et lorsque l’on rentre en collision avec un autre objet celui-ci s’active.

Attention lorsqu’un objet est inactif aucun de ces scripts ne fonctionnent, il faut impérativement avoir un script sur un autre objet pour réactiver l’objet.

Activer ou Déactiver un script ou un composant

Pour créer certains boost  permanents ou encore débloquer des pouvoirs à des moments particuliers on peut vouloir activer ou désactiver certains composants. Par exemple, ici on va voir ce mécanisme pour pouvoir allumer ou éteindre une lumière avec la touche O.

Attention ici on active uniquement un script, une partie d’un objet, si tu veux désactiver tout l’objet tu peux regarder juste au dessus.

Principe du script

On récupère un script depuis l’interface de Unity avec une variable publique et quand on appuie sur une touche on l’active ou le désactive.

Pour l’exemple notre composant sera de type Light, on crée donc une variable de ce type. Pour ton script, utilise le type du composant de ton choix.

 
 

Ensuite on va vérifier si l’on appuie sur la touche choisie avec la fonction Input.GetKeyDown().

Tu peux aussi utiliser des collisions ou d’autres systèmes d’input selon tes envies.

Quand la touche est pressée on vérifie si la lumière est allumée, si elle est allumée alors on l’éteint sinon on l’allume.

On utilise la propriété enabled qui vaut vrai si le composant est activé et faux sinon.

 Une autre méthode consiste à utiliser l’opérateur non ! qui inverse la valeur d’un booléen.

 

 

Récupérer des objets

Cette mécanique peut être très utile que ce soit pour récupérer des objets, pour avoir un score, activer des boosts ou encore faire des inventaires, valider des niveaux seulement si certains objets sont ramassés…

Principe du script

La base du script repose sur la collision entre notre personnage et l’objet. Par exemple, quand on touche un objet on le détruit:

Pour faciliter la détection de la collision, il est préférable d’utiliser OnTriggerEnter et penser à mettre le collider de l’objet qu’on veut ramasser en IsTrigger.

 

Afin de ne pas tout détruire mais seulement certains objets, on peut utiliser un Tag et vérifier si l’objet a le bon tag avant de le détruire.

Et penser à mettre le bon tag à l’objet.

Avec la fonction Destroy on peut aussi spécifier un temps d’attente avant de détruire l’objet en secondes. Par exemple attendre 3 secondes avant de détruire l’objet :

 

Avant de détruire l’objet on peut Collecter des Pièces ou des Clés

Ajouter 1 à une variable qui compte les objets ramassés pour mettre un système de score