Lancer une grenade avec explosion dans Unity c’est facile !

Dans ce tutoriel vidéo nous allons créer un système de lancé de grenade depuis le FPS controller des ‘standard Asset’.

De plus nous utiliserons une particule afin de créer une explosion et donner plus de réalisme a notre grenade.

Les scripts de la vidéo sont disponibles ci dessous :

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

public class EjectScript : MonoBehaviour {

    [SerializeField] GameObject grenade;
    [SerializeField] int force=1000;    


    void Update () {
        
        if(Input.GetButtonDown("Fire1"))
        {
           GameObject Go= Instantiate(grenade, transform.position, Quaternion.identity) ;
           Go.GetComponent<Rigidbody>().AddForce(transform.TransformDirection(Vector3.forward) * force);
        }
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GrenadeScript : MonoBehaviour {

    public float sec = 2f;
    public bool boom = false;
    public GameObject cible;
    [SerializeField] GameObject particle;

    
    
    IEnumerator Explosion()
    {
        yield return new WaitForSeconds(sec);
        boom = true;

    }

    private void OnCollisionEnter(Collision collision)
    {
        StartCoroutine(Explosion());
    }
   

    private void OnTriggerStay (Collider other)
    {
        if (!boom) return;

        if (other.CompareTag("Cube") )
        {            
            Destroy(other.gameObject);            
        }

        Instantiate(particle, transform.position, Quaternion.identity);
        Destroy(gameObject);
    
    }
}

 

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.