Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Créer un système de PowerUp dans Unity

Par Jean-Baptiste AMMIRATI Publié le 19/09/2019 à 18:01:44 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Présentation

Bonjour à tous, je vais présenter rapidement et simplement comment mettre en place un système de powerUp dans votre création de jeux via Unity. Mais en plus de cela je vais vous rajouter un effet de particule afin de mettre une touche de réalisme.

Sommaire

  • Création du PowerUp via un GameObject

  • Création du script

  • Assignation d'un effet de particle

  • Conclusion

Création du PowerUp via un GameObject

La création d'un PowerUp va sans doute paraitre simple mais il peut exister différentes manières. Dans ce tutoriel, nous allons avoir un personnage qui va pouvoir se déplacer, soit vous faites un clic droit puis vous importer les packages que Unity fournit nativement ou alors vous pouvez simplement créer un script qui va vous permettre de déplacer votre personnage à vous de choisir. Dans mon cas, mon personnage est un cube ou j'ai attribué le tag "Player" avec une "Plane" ou notre personnage puisse se déplacer. Ensuite créons notre boost, nous allons faire en sorte qu'une fois notre personnage prends le PowerUp qu'il augmente de taille. Pour ce faire nous allons créer une sphère que l'on renomme "PowerUp" et dans la case "Mesh Collider" il faut impérativement cocher "Is Trigger" sinon votre personnage aura une collision avec notre boost mais il n'y aura aucun effet. Une fois ceci fait passons au script.

Création du script

Le script est plutôt court mais efficace, il va falloir que l'on déclare d'abord notre multiplicateur de grandeur :

Ensuite l'on va créer une nouvelle fonction qui va en appellé une autre afin d'épuré notre code. Cette fonction va permettre qu'une fois le personnage est en contacte avec le boost alors on appele une nouvelle fonction qui va effectuer notre action sur le personnage. la première fonction sera :

public void OnTriggerEnter(Collider other)

{

if(other.CompareTag("Player"))

{

Pickup(other);

}

}

// La fonction nommé Pickup :

public void Pickup(Collider player)

{

Debug.Log("Power up is picked !");

// Ca va augmenter la taille du joueur une fois qu'il prends le powerUp !

player.transform.localScale *= multiplier;

Destroy(gameObject);

}

Cette fonction gràace au multiplicateur va augmenter la taille de notre personnage une fois le boost pris puis détruire le gameObject par la suite. Vous pouvez maintenant vérifier que tout cela fonctionne et voyez le résultat par vous-même !

Exemple :

Avant

Après

Assignation d'un effet de particule

Rajoutons un peu de réalisme une fois que vous preniez le boost, pour ce faire il faudra all dans l'Asset Store directement dans Unity. Mais avant il vous faudra créer un compte dans aller via Google Chrome, FireFox, etc surhttps://assetstore.unity.com/, remplissez les différentes informations afin que votre compte soit valide pour télécharger un asset.

Une fois la validation de votre compte, chercher un effet de particule qui vous plaise pour ma part ce sera celui-ci :

https://assetstore.unity.com/packages/vfx/particles/fire-explosions/fire-explosion-vfx-48795

Une fois que vous avez importer le package il vous suffit de modifier très légérement le code précédemment, pour cela nous allons ajouter cette ligne de code :

public GameObject pickupEffect;

Qui va nous permettre d'assigner un gameObject qui fera cet effet Wouah !

Ensuite rajoutons encore ceci pour qu'une fois le personnage est pris le boost, l'animation se déclenche comme la photo ci-dessus.

Instantiate(pickupEffect, transform.position, transform.rotation);

Je vous remet le code en entier pour que vous ayez juste à copier-coller sans trop réfléchir :)

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class PowerUp : MonoBehaviour

{

public GameObject pickupEffect;

public float multiplier = 1.4f;

public void OnTriggerEnter(Collider other)

{

if(other.CompareTag("Player"))

{

Pickup(other);

}

}

public void Pickup(Collider player)

{

Debug.Log("Power up is picked !");

Instantiate(pickupEffect, transform.position, transform.rotation);

// Ca va augmenter la taille du joueur une fois qu'il prends le powerUp !

player.transform.localScale *= multiplier;

Destroy(gameObject);

}

}

Conclusion

Et voilà c'est terminé pour ce tutoriel, nous avons rapidement vu comment créer un PowerUp sans trop de difficulté vous pouvez ainsi faire celà pour remonter la santé de votre personnae si votre jeux s'adresse plus a un FPS ou autre. J'espère que ça vous aura plus en tout cas moi je me suis fait un plaisir de vous rédiger ça, je vous dit à bientot pour de nouveaux petits tuto de ce genre.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels