Probleme lecture d'un son ( lors d'un tir )

Questions à propos de la partie audio, y compris les problèmes de script s'y rapportant.
Kamiloo95
Messages : 72
Inscription : 06 Avr 2015 10:14

Probleme lecture d'un son ( lors d'un tir )

Message par Kamiloo95 » 07 Avr 2015 21:49

Bonjour à tous,
cela fait trois jours que j'ai un problème vraiment bête mais super :evil: :evil: :evil: ( désolé ). Le problème est le suivant :
Je suis actuellement en train de suivre le tutoriel vidéo 1 de ce site ( création d'un FPS basique). Sauf que comme nous sommes maintenant avec Unity 5, à tout les chapitres, je dois modifier le code. Jusqu’à maintenant ça allait, mais depuis trois jours , je n'arrive pas un intégrer un son lorsque je tire ! :cry: .
J'essaye d’intégrer tout d'abord mon son exactement comme sur la vidéo ( ma variable AudioClip est "shootSound") :

Code : Tout sélectionner

audio.PlayOneShot(shootSound);
Ensuite je modifie car le "audio" n'existe plus donc:

Code : Tout sélectionner

GetComponent<AudioSource>().PlayOneShot(shootSound);
Et puis la, j'ai les erreurs suivantes : Assets/Scripts/Shoot.js(32,35): BCE0043: Unexpected token: ).
Assets/Scripts/Shoot.js(32,36): BCE0044: expecting ), found '.'.
Assets/Scripts/Shoot.js(32,37): UCE0001: ';' expected. Insert a semicolon at the end.

Merci d'avance pour vos réponse car je suis vraiment désespéré .

Si vous en avez besoin, voici mon code complet:

Code : Tout sélectionner

 #pragma strict
@script RequireComponent(AudioSource)

var fireRate = 0.30;
var impact:GameObject;
var canFire = true;

var shootSound:AudioClip;
Cursor.visible = false;

function Update () 
{
	if(Input.GetButton("Fire1"))
	{
		Fire();
	}
	
}

function Fire ()
{
	if (canFire == true)
	{
		canFire = false;
		
		FireOneShot();
	}
}

function FireOneShot ()
{
	GetComponent<AudioSource>().PlayOneShot(shootSound);
	
	var direction = transform.TransformDirection(Vector3.forward);
	var hit:RaycastHit;
	
	if (Physics.Raycast(transform.position,direction,hit,100))
	{
		var tempRot;
		tempRot = Quaternion.FromToRotation(Vector3.up,hit.normal);
		Instantiate(impact,hit.point,tempRot);
	}
	
	yield WaitForSeconds(fireRate);
	canFire = true;
} 
Dernière édition par Kamiloo95 le 08 Avr 2015 15:15, édité 2 fois.

Avatar de l’utilisateur
LudlowFx
Messages : 1367
Inscription : 19 Sep 2013 05:50

Re: Probleme "nouveau" Unity :cry:

Message par LudlowFx » 07 Avr 2015 22:03

[center][Modération]
Extrait de la Nétiquette a écrit :...Rédigez soigneusement l’objet (titre) de votre message, il doit informer clairement sur son contenu. Evitez absolument les titres non descriptifs comme "A l’aide", "Question", "SVP", "J’ai un problème !!!!!"...
Merci de corriger, dès lecture de ce message, le titre de votre sujet ![/center]
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !

Idolo
Messages : 89
Inscription : 11 Mars 2015 10:16

Re: Probleme "nouveau" Unity :cry:

Message par Idolo » 08 Avr 2015 09:23

Bonjour, je crois qu'il te manque un petit point vu que tu es en javascript tente comme ça:

Code : Tout sélectionner

GetComponent.<AudioSource>().PlayOneShot(shootSound);
Mais même comme ça je suis pas sur que ça fonctionne bien.

Essaie sinon de mettre ça:

Code : Tout sélectionner

GetComponent.<AudioSource>().clip = shootSound;
GetComponent.<AudioSource>().Play();
Dernière édition par Idolo le 08 Avr 2015 09:31, édité 1 fois.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6265
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Probleme "nouveau" Unity :cry:

Message par boubouk50 » 08 Avr 2015 09:30

remplace

Code : Tout sélectionner

GetComponent<AudioSource>().PlayOneShot(shootSound);
par

Code : Tout sélectionner

GetComponent.<AudioSource>().PlayOneShot(shootSound);
"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

Kamiloo95
Messages : 72
Inscription : 06 Avr 2015 10:14

Re: Probleme lecture d'un son ( lors d'un tir )

Message par Kamiloo95 » 08 Avr 2015 13:50

Merci beaucoup, j'ai remplacé par

Code : Tout sélectionner

GetComponent.<AudioSource>.PlayOneShot(shootSound)
Et ça marche :o :D

Mais il y a un autre problème: le son ne se lit pas . Le problème est un peu plus complexe :
Quand je met mon

Code : Tout sélectionner

GetComponent.<AudioSource>().PlayOneShot(shootSound);
au début de ma fonction FireOneShot ( voir dans mon code sur le post ),et que j'appuie sur play, la, je ne peut plus tirer ( canFire = false ) , le son ne se lit pas et j'ai ce problème :

MissingComponentException: There is no 'AudioSource' attached to the "FirstPersonCharacter" game object, but a script is trying to access it.
You probably need to add a AudioSource to the game object "FirstPersonCharacter". Or your script needs to check if the component is attached before using it.
UnityEngine.AudioSource.PlayOneShot (UnityEngine.AudioClip clip) (at C:/buildslave/unity/build/artifacts/generated/common/modules/AudioBindings.gen.cs:664)
Shoot+$FireOneShot$1+$.MoveNext () (at Assets/Scripts/Shoot.js:32)
UnityEngine.MonoBehaviour:StartCoroutine_Auto(IEnumerator)
Shoot:Fire() (at Assets/Scripts/Shoot.js:26)
Shoot:Update() (at Assets/Scripts/Shoot.js:15)

C'est assez long je vous l'accorde.
Et quand je déplace

Code : Tout sélectionner

GetComponent.<AudioSource>().PlayOneShot(shootSound);
à la fin, je peut tirer, mais j'ai le même problème donc le son ne se lit pas.

N.B : j'ai glissé déposé mon son bang.ogg dans ma variable ( dans l'onglet de mon script, dans l'inspector).

Merci beaucoup.
Cordialement

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6265
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Probleme lecture d'un son ( lors d'un tir )

Message par boubouk50 » 08 Avr 2015 14:01

Alors:

Code : Tout sélectionner

GetComponent.<AudioSource>.PlayOneShot(shootSound);
est un raccourci pour

Code : Tout sélectionner

this.GetComponent.<AudioSource>.PlayOneShot(shootSound);
Ce qui signifie que le script va chercher le composant Audio dans le gameObject qui possède ce script. Ce gameObject n'a pas de composant Audio donc le script n'arrive pas à le trouver et renvoie une erreur.
Le message d'erreur est très explicite:
You probably need to add a AudioSource to the game object "FirstPersonCharacter"
Pour obliger le gameObject à avoir les composants nécessaires au bon déroulement du script, tu peux utiliser en début de celui-ci:

Code : Tout sélectionner

@script RequireComponent(AudioSource)
"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

Kamiloo95
Messages : 72
Inscription : 06 Avr 2015 10:14

Re: Probleme lecture d'un son ( lors d'un tir )

Message par Kamiloo95 » 08 Avr 2015 15:11

C'est bon ca marche . En vérité c'était tout bete : je n'avais pas mis le component AudioSource dans l'inspector de mon joueur :D merci beaucoup de votre aide !

Répondre

Revenir vers « Audio, musique et sons »