[DB-RS] Je voudrais mettre un délai sur mon script

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Frayseur
Messages : 7
Inscription : 15 Mars 2015 12:23

[DB-RS] Je voudrais mettre un délai sur mon script

Message par Frayseur » 03 Juin 2018 12:42

Yop, je suis actuellement sur un jeu "shooter2D" et j'ai ajouter récemment ajouter un "Dash" sur mon personnage, or voila, j'ai créer mon script via un tuto sur internet, tout fonctionne mais je voudrait ajouter un délai entre chaque dash du personnage. Je sais que c'est compliquer, c'est pourquoi je vous demande votre aide :P , voici mon script :

Code : Tout sélectionner

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

public class DashMove : MonoBehaviour {

	private  Rigidbody2D rb;
	public float dashSpeed;
	private float dashTime;
	public float startDashTime;
	private int direction;

	void Start(){
		rb = GetComponent<Rigidbody2D>();
		dashTime = startDashTime;
	}

	void Update(){

		if(direction == 0){
			if(Input.GetKeyDown(KeyCode.LeftArrow)) {
				direction = 1;
			} else if (Input.GetKeyDown(KeyCode.RightArrow)) {
				direction = 2;
			} else if (Input.GetKeyDown(KeyCode.UpArrow)) {
				direction = 3;
			} else if (Input.GetKeyDown(KeyCode.DownArrow)) {
				direction = 4;
			}
		} else {
			if (dashTime <= 0){
				direction = 0;
				dashTime = startDashTime;
				rb.velocity = Vector2.zero;
			} else {
				dashTime -= Time.deltaTime;

				if (direction == 1) {
					rb.velocity = Vector2.left * dashSpeed;
				} else if (direction == 2){
					rb.velocity = Vector2.right * dashSpeed;
				} else if (direction == 3){
					rb.velocity = Vector2.up * dashSpeed;
				} else if (direction == 4){
					rb.velocity = Vector2.down * dashSpeed;
				}
			}
		}
	}
}
.
 ! Message de : Max
Pense à utiliser les balises code.
Merci de lire la Netiquette.

Autodidactelife
Messages : 47
Inscription : 21 Fév 2018 23:04
Localisation : France

Re: [DB-RS] Je voudrais mettre un délai sur mon script

Message par Autodidactelife » 03 Juin 2018 14:40

Bonjour,

Ton script est vraiment incompréhensible des commentaires dedans n'aurait pas était de refus.

Je pense que ton soucie est après le else ? Puisqu'à priori tu as essayer déjà d'y mettre le dash.

Tu n'as pas besoin de 2 valeurs pour le dash, tu peux utilisé uniquement le deltaTime du moment où tu as fais ton dash (donc le dernier dash). À partir de là tu peux savoir depuis combien de temps tu as dash, donc à la fois tu peux désactiver à partir d'un moment passer et à la fois tu peux le réactiver pour que la personne puis redash.

Imaginons après 2secondes il ne dash plus, après 10s il peut redash. 8s d'écart entre la fin du dash et le nouveau dash (10s entre l'appuis de la touche et le nouveau dash).

J'espère que ça t'aidera un minimum, je préfère pas te donner d'exemple avec ton code au risque de faire n'importe quoi :)

Je suis débutant aussi, donc possiblement je peux dire des bêtises ! :aille2:

Répondre

Revenir vers « (C#) CSharp »