Page 1 sur 1

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

Publié : 14 Juin 2018 15:59
par damien-max
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!

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

Publié : 14 Juin 2018 16:10
par boubouk50
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;

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

Publié : 14 Juin 2018 16:18
par damien-max
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!

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

Publié : 14 Juin 2018 16:46
par boubouk50
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.

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

Publié : 14 Juin 2018 19:33
par damien-max
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!