Exploiter les rayons avec Unity : Ray Raycast RaycastHit

Qu’est ce qu’un Raycast ?

Tout d’abord, vous pouvez vous demander ce qu’est un Raycast. Pour faire simple, on pourrait comparer le Raycast à un faisceau lumineux allant en ligne droite sur une distance donnée.

Ce faisceau va nous permettre de vérifier s’il rentre en contact avec un autre objet, un tag ou des calques. Vous aurez la possibilité de filtrer très finement la collision du Raycast.

Avec les Raycast, vous allez pouvoir gérer un grand nombre de chose.
Je vous donne quelques exemples :

  • Vérifier une distance entre le joueur et un objet/sol
  • Créer un système de visé pour vos armes
  • Système de vision à la Metal Gear Solid, pour détecter le joueur
  • Améliorer les collisions.

Il n’est pas nécessaire de savoir les utiliser, mais je trouve que cela aide au développement de vos jeux. Les raycasts peuvent être utilisés autant pour les jeux en 3D qu’en 2D.

Voici le code utilisé dans cette vidéo :

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

public class DemoRaycast : MonoBehaviour
{
    public GameObject pt;
   
    void Update()
    {
        Debug.DrawRay(transform.position, Vector3.forward * 5, Color.yellow);

        RaycastHit hit;
        Ray ray = new Ray(transform.position, Vector3.forward);

        int layer_mask = LayerMask.GetMask("Default");

        if(Physics.Raycast(ray, out hit, Mathf.Infinity, layer_mask, QueryTriggerInteraction.Ignore))
        {
            print(hit.transform.name +" traverse le rayon.");
            print("La distance est de " + hit.distance);
            pt.transform.position = hit.point;
        }
    }
}

Bon dev les amis 🙂


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

2 Comments

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.