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

YouTube player

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 279 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.