Pour vous mettre un peu dans le contexte, je travail sur un FPS, en bref rien de passionnant pour vous.
On va pas se mentir les tutoriels qui parlent de FPS ce n'est pas ce qu'il manque et pourtant... je n'ai toujours pas trouvé ma réponse.
En gros j'aimerai donné un départ et une trajectoire plus ou moins réaliste à ma balle, ayant commencé par la modélisation d'un glock 17 je voudrai donc que celle ci partent à plus de 300m/s mais soit très vite freiner par un force externe qui me permettrai de la faire tomber à une cinquantaine, centaine de mètres selon mon choix, en espérant que cela soit réalisable.
J'ai chercher pas mal de tutos mais j'en ai trouvé aucun qui parlent de ça, j'ai pensé au rigidbody AddForce suis-je sur la bonne voie ?
En tout cas si vous en avez pour moi sa serait super, n’étant pas bilingue si vous pouviez m’éviter les vidéos en anglais je ne les comprendraient pas merci pour les sites par contre il n'y a pas de soucis mon samsung le parle très bien.
Merci pour vos réponses et celles que vous apportez aux autres !
Mon script actuel :
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BulletTir : MonoBehaviour
{
//DeclarationVariables
public Rigidbody Eject;
public AudioClip SonDuTir;
public AudioClip SonDeRechargement;
public int Chargeur = 30;
public int Reserve = 30;
public int MinReserve = 0;
public int ChargeurMax = 30;
public int Force = 50;
public float VitesseDeTir = 0.5F;
private float Cooldown = 0.0F;
private bool FullAuto = false;
//DeclarationMethodes
void PiocheReserve()
{
Reserve -= ChargeurMax - Chargeur;
}
void Update()
{
//Tirer
if (Input.GetButton("Fire1") & Time.time > Cooldown)
if (Chargeur >= 1)
{
GetComponent<AudioSource>().PlayOneShot(SonDuTir);
Cooldown = Time.time + VitesseDeTir;
Rigidbody Bullet;
Bullet = Instantiate(Eject, transform.position, transform.rotation);
Chargeur -= 1;
Bullet.velocity = transform.TransformDirection(Vector3.left * Force);
}
//Recharger
if (Input.GetKeyDown(KeyCode.R) & Chargeur < ChargeurMax & Reserve >0)
{
PiocheReserve();
Chargeur += ChargeurMax - Chargeur;
GetComponent<AudioSource>().PlayOneShot(SonDeRechargement);
}
if (Chargeur > ChargeurMax)
{
Chargeur = ChargeurMax;
}
if (Reserve <= 0)
{
Reserve = 0;
}
//FullAutomatique
if (Input.GetKeyDown(KeyCode.V))
{
FullAuto = !FullAuto;
}
if (FullAuto == true)
{
VitesseDeTir = 0.10F;
}
else
{
VitesseDeTir = 0.5F;
}
}
//AfficheMoiCa
void OnGUI()
{
GUI.Box(new Rect(10, 10, 130, 25), Chargeur+ "/" +Reserve);
}
}
Code : Tout sélectionner
void Update()
{
//Tirer
if (Input.GetButton("Fire1") & Time.time > Cooldown)
if (Chargeur >= 1)
{
GetComponent<AudioSource>().PlayOneShot(SonDuTir);
Cooldown = Time.time + VitesseDeTir;
Rigidbody Bullet;
Bullet = Instantiate(Eject, transform.position, transform.rotation);
Chargeur -= 1;
Bullet.velocity = transform.TransformDirection(Vector3.left * Force);
}