Unity - Contrôleur pour personnage d'un jeu de plateformes

Script pour la gravité

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Introduction

Cette série explique pas à pas la création d'un contrôleur pour le mouvement d'un personnage dans un jeu de plateformes 2D.
Vous pouvez retrouver les autres épisodes de cette série dans le sommaire dédié.

II. Vidéo


Unity - Contrôleur pour personnage d'un jeu de plateformes - Script pour la gravité


III. Résumé

Dans ce chapitre, vous allez implémenter la gravité.

III-A. Mise en place

Dans ce tutoriel, la gravité sera appliquée à une caisse. Pour que celle-ci fonctionne, il faut utiliser les composants suivants :

Le type du « RigidBody 2D » est défini à « Kinematic ». Ainsi, il ne sera pas déplacé par la simulation physique mais uniquement par un script.

Ensuite, vous devez créer un nouveau script « PhysicsObject.cs » :

 
Sélectionnez
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PhysicsObject : MonoBehaviour {

    public float gravityModifier = 1f;

    protected Rigidbody2D rb2d;
    protected Vector2 velocity;

    void OnEnable()
    {
        rb2d = GetComponent<Rigidbody2D> ();
    }

    void Start () 
    {

    }
    
    void Update () 
    {

    }

    void FixedUpdate()
    {
        velocity += gravityModifier * Physics2D.gravity * Time.deltaTime;

        Vector2 deltaPosition = velocity * Time.deltaTime;

Vector2 move = Vector2.up * deltaPosition.y;

        Movement (move);
    }

    void Movement(Vector2 move)
    {
        rb2d.position = rb2d.position + move;
    }

}

Dans un script, si vous souhaitez déplacer un élément de votre scène gérée par le moteur physique (embarquant un « RigidBody 2D »), vous devez utiliser la fonction FixedUpdate().
Dans celle-ci, vous allez simplement calculer la vélocité de l'objet suivant la gravité. Ensuite, vous allez appliquer cette vélocité pour déplacer l'objet.

Si vous lancez le script, la caisse sera effectivement affectée par la gravité et tombera. Toutefois, aucune collision n'est gérée et elle traversera le sol.

IV. Ressources

Vous pouvez télécharger les ressources pour ce projet ici.

V. Commenter

Vous pouvez commenter et donner vos avis dans la discussion associée sur le forum.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2017 Unity Technologies. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.