Prédiction de trajectoire 2D – Réflexion de rayon avec Unity

La prédiction de trajectoire permet au joueur d’affiner le lancement d’un projectile dans certains jeux.

Cet outil est indispensable dans des jeux de type : Billard, Casse-brique, Brick Ball Breaker, etc…

Dans cette vidéo nous allons utiliser les « Raycast » afin de dessiner la trajectoire d’un projectile en 2D, pour cela nous allons devoir calculer le nouveau vecteur de direction après l’impact à l’aide de Vector2.Reflect.

Utilisation de Vector2.Reflect

Vector2.Reflect Reflète un vecteur hors du plan défini par une normale.

Syntaxe :

Vector2.Reflect ( Vector2 inDirection, Vector2 inNormal)

  • InDirection : Vecteur de direction du projectile.
  • InNormal : Vecteur perpendiculaire à l’objet impacté.
  • Result : Nouveau Vecteur de Direction.

Code source

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RayBounce : MonoBehaviour
{
    RaycastHit2D hit;
    public int TotalBounce = 3;
    public float LineOffset = 0.01f;

    void Update()
    {
        Vector2 direction = transform.up;
        Vector2 origin = (Vector2)transform.position + LineOffset * direction;

        for(int i=1; i<=TotalBounce; i++)
        {
            hit = Physics2D.Raycast(origin, direction);
            Debug.DrawLine(origin, hit.point);

            direction = Vector2.Reflect(direction.normalized, hit.normal);
            origin = hit.point + LineOffset * direction;
        }
        
    }
}

A propos de upln 225 Articles
En informatique le problème se situe souvent entre la chaise et le clavier !

Soyez le premier à commenter

Poster un Commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.