[RESOLU][DB-AL] Changer le pitch en fonction de la vitesse

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
damien-max
Messages : 39
Inscription : 19 Déc 2017 23:44

[RESOLU][DB-AL] Changer le pitch en fonction de la vitesse

Message par damien-max » 14 Juin 2018 15:59

Bonjour,

je cherche à changer le pitch (hauteur) du son du moteur de mon véhicule en fonction de sa vitesse sur l'axe X. je précise que c'est un projet Unity 2D au cas où ce serait la cause du non-fonctionnement.

Voici le script qui ne marche pas:

Code : Tout sélectionner

using System.Collections;
using UnityEngine;

public class Moteur : MonoBehaviour {

	public float topspeed = 100f;

	private float currentSpeed = 0f;
	private float pitch = 0f;
	AudioSource audio;
	Rigidbody2D rigidbody2D;

	// Use this for initialization
	void Start () {
		audio = GetComponent <AudioSource> ();
		rigidbody2D = GetComponent<Rigidbody2D> ();
	}
	
	// Update is called once per frame
	void Update () {

		currentSpeed = rigidbody2D.velocity.X * 3.6f;
		pitch = currentSpeed / topspeed;
		audio.pitch = pitch;
	}
}
Merci de votre aide!

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 4469
Inscription : 28 Avr 2014 11:57
Localisation : Toulouse

Re: [DB-AL] Changer le pitch en fonction de la vitesse

Message par boubouk50 » 14 Juin 2018 16:10

Salut,

Merci de nous expliquer tout de même ce qui ne marche pas:
- As-tu une/des erreurs -> La/les recopier ici
- Pas d'erreur mais pas de changement de pitch?
- autre.

Sinon dans ton code, tu as mis X au lieu de x:

Code : Tout sélectionner

currentSpeed = rigidbody2D.velocity.x * 3.6f;
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

damien-max
Messages : 39
Inscription : 19 Déc 2017 23:44

Re: [DB-AL] Changer le pitch en fonction de la vitesse

Message par damien-max » 14 Juin 2018 16:18

boubouk50 a écrit :
14 Juin 2018 16:10
Salut,

Merci de nous expliquer tout de même ce qui ne marche pas:
- As-tu une/des erreurs -> La/les recopier ici
- Pas d'erreur mais pas de changement de pitch?
- autre.

Sinon dans ton code, tu as mis X au lieu de x:

Code : Tout sélectionner

currentSpeed = rigidbody2D.velocity.x * 3.6f;
désolé du manque d'information: pour ce qui est des erreurs, je n'en ai aucune. le son se joue juste en boucle (comme prévue) mais ne change pas quand j'accélère. D'ailleur, j'ai testé de remplacer X par x mais cela n'a pas marché.

EDIT: je suis bête, j'ai attribué le script au parent de la voiture,; donc comme il n'a pas de RigidBody2D, ca ne marchait pas!

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 4469
Inscription : 28 Avr 2014 11:57
Localisation : Toulouse

Re: [DB-AL] Changer le pitch en fonction de la vitesse

Message par boubouk50 » 14 Juin 2018 16:46

damien-max a écrit :
14 Juin 2018 16:18
désolé du manque d'information: pour ce qui est des erreurs, je n'en ai aucune. le son se joue juste en boucle (comme prévue) mais ne change pas quand j'accélère. D'ailleur, j'ai testé de remplacer X par x mais cela n'a pas marché.

EDIT: je suis bête, j'ai attribué le script au parent de la voiture,; donc comme il n'a pas de RigidBody2D, ca ne marchait pas!
Donc tu as dû avoir des erreurs en console.
Si tu l'as attaché à un objet qui n'a pas de rigidbody2D ou d'audiosource, l'accès à ceux-ci devait forcément renvoyer une erreur à chaque frame, car dans l'Update ().
Aussi, la variable X n'existe pas. Elle renvoyait forcément une erreur, d'ailleurs, elle n'aurait pas du compiler. Bizarre.
Regarde dans l'onglet Console si tu n'aurais pas désactiver les LogErrors (icône Stop rouge sur l'image):
Image
Ça te permettra de savoir où les erreurs se situent.

Autant cette fois-ci le problème est réglé rapidement, tant mieux, autant cela prends 20 posts pour certains. Pour une aide optimale, merci de faire attention aux informations données.

Sujet résolu donc.
Pense à éditer le titre de ton premier message et ajouter [RESOLU] en début de celui-ci pour le signaler aux autres membres stp. Je m'en occupe cette fois-ci.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

damien-max
Messages : 39
Inscription : 19 Déc 2017 23:44

Re: [DB-AL] Changer le pitch en fonction de la vitesse

Message par damien-max » 14 Juin 2018 19:33

boubouk50 a écrit :
14 Juin 2018 16:46
damien-max a écrit :
14 Juin 2018 16:18
désolé du manque d'information: pour ce qui est des erreurs, je n'en ai aucune. le son se joue juste en boucle (comme prévue) mais ne change pas quand j'accélère. D'ailleur, j'ai testé de remplacer X par x mais cela n'a pas marché.

EDIT: je suis bête, j'ai attribué le script au parent de la voiture,; donc comme il n'a pas de RigidBody2D, ca ne marchait pas!
Donc tu as dû avoir des erreurs en console.
Si tu l'as attaché à un objet qui n'a pas de rigidbody2D ou d'audiosource, l'accès à ceux-ci devait forcément renvoyer une erreur à chaque frame, car dans l'Update ().
Aussi, la variable X n'existe pas. Elle renvoyait forcément une erreur, d'ailleurs, elle n'aurait pas du compiler. Bizarre.
Regarde dans l'onglet Console si tu n'aurais pas désactiver les LogErrors (icône Stop rouge sur l'image):
Image
Ça te permettra de savoir où les erreurs se situent.

Autant cette fois-ci le problème est réglé rapidement, tant mieux, autant cela prends 20 posts pour certains. Pour une aide optimale, merci de faire attention aux informations données.

Sujet résolu donc.
Pense à éditer le titre de ton premier message et ajouter [RESOLU] en début de celui-ci pour le signaler aux autres membres stp. Je m'en occupe cette fois-ci.
En effet, j'avais désactivé l'affichage des erreurs. ^^

Et c'est noté pour la prochaine fois, résolu!

Répondre

Revenir vers « (C#) CSharp »