[RESOLU] Gestion AudioSource / Algo

Questions à propos de la partie audio, y compris les problèmes de script s'y rapportant.
axelpawel
Messages : 9
Inscription : 26 Avr 2016 23:50

[RESOLU] Gestion AudioSource / Algo

Message par axelpawel » 27 Avr 2016 00:17

Et bien Bonjour à tous pour commencer :]
Ne sachant pas trop ou poster mon problème :/ j'ai pris l'initiative de poster sur cette section du forum :3
je suis actuellement sur un projet de jeux d'horreur et je suis un grand débutant amateur et j'ai un souci: j'aimerais pouvoir entendre deux sons différents, lors de l'ouverture puis de la fermeture d'une porte (j'ai déjà réussi à avoir qu'un seul même son pour l'ouverture et la fermeture en suivant diverse tuto sur youtube et internet)
J'ai épluché les site internet et les forums écrit en anglais, essayé multiples combinaison, mon unity me signal parfois un problème d'API (je ne sais pas ce que c'est) et refuse de compiler.. je n'avance pas..
Mon script est en java et j'ai vu aussi que depuis la version 5 d'unity la manière d’intégrer des clip audio à changer.
Merci

Code : Tout sélectionner

#pragma strict

var ?(sons1)
var ?(sons 2)
var smooth = 2.0;
var DoorOpenAngle = 90.0;
private var open : boolean;
private var enter : boolean;

private var defaultRot : Vector3;
private var openRot : Vector3;

function Start(){
defaultRot = transform.eulerAngles;
openRot = new Vector3 (defaultRot.x, defaultRot.y + DoorOpenAngle, defaultRot.z);
/****************variable à définir ici ?****************/
}

//Main function
function Update (){
if(open){
//Open door
transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, openRot, Time.deltaTime * smooth);
/****************mettre le son 1 ici mais je sais pas comment****************/


}else{
//Close door
transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, defaultRot, Time.deltaTime * smooth);
/****************mettre le son 2 ici mais je sais pas comment****************/
}

// PARTIE INUTILE ?
if(Input.GetKeyDown("f") && enter){
open = !open;
}
}

function OnGUI(){
if(enter){
GUI.Label(new Rect(Screen.width/2 - 75, Screen.height - 100, 150, 30), "Press 'F' to open the door");
}
}

//Activate the Main function when player is near the door
function OnTriggerEnter (other : Collider){
if (other.gameObject.tag == "Player") {
enter = true;
}
}

//Deactivate the Main function when player is go away from door
function OnTriggerExit (other : Collider){
if (other.gameObject.tag == "Player") {
enter = false;
}
}

Avatar de l’utilisateur
E3DStef
Administrateur
Administrateur
Messages : 1646
Inscription : 14 Juil 2013 18:30
Localisation : https://www.carte-des-membres.com/fr/Unity3D-France/

Re: Ajouter plusieurs Audio/Problème

Message par E3DStef » 27 Avr 2016 00:41

Salut

Alors pour le son c'est super facile : AudioSource !

La doc ici > http://docs.unity3d.com/ScriptReference ... ource.html

Un Unity Learn (leçon d'apprentissage) dessus > https://unity3d.com/learn/tutorials/mod ... -scripting

Vas-y teste et fais nous un retour si tu galères.

A+

Stef
Le Savoir n'est Précieux que s'il est Partagé

Si besoin urgent de me contacter, faites moi un mail sur : franceunity3d@gmail.com

Avatar de l’utilisateur
Max
Messages : 8763
Inscription : 30 Juil 2011 13:57
Contact :

Re: Ajouter plusieurs Audio/Problème

Message par Max » 27 Avr 2016 07:43

Bonjour,
axelpawel a écrit :Ne sachant pas trop ou poster mon problème :/ j'ai pris l'initiative de poster sur cette section du forum :3
dans ce cas une lecture de la Netiquette t'aurais apporté les réponses. Idem pour les balises codes. Comme tu avais écris ton code, c'était illisible, même si à la base tu as essayé de mettre en valeur la partie qui te semblais poser problème. :mrgreen:
Sujets déplacé et modifié.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

axelpawel
Messages : 9
Inscription : 26 Avr 2016 23:50

Re: Ajouter plusieurs Audio/Problème

Message par axelpawel » 27 Avr 2016 11:15

Déjà un grand merci à vous pour m'avoir répondue rapidement et efficacement,

je n'est pas pu tester ses solutions proposé car je ne sais pas trop programmer les scripts et mon scripts et en java, les solutions proposé s'applique au C#.. je pourrais faire des recherches comment retransmettre mon script en C# mais avant de me lancer dans ce, j'aimerais savoir si il existe une possibilité sans passer par le C#, c'est à dire appliquable au javascript, encore merci :-)




(PS: à l'avenir comment mettre mon code de manière visible sur le forum)

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

Re: Ajouter plusieurs Audio/Problème

Message par boubouk50 » 27 Avr 2016 11:20

C'est du javascript (Unityscript exactement) pas du Java (c'est complètement différent, même si on a compris)
Dans la doc Unity, tu as deux bouton C# - Js en haut à droite, ça te permet d'avoir les deux versions et faire la traduction d'un langage à l'autre, et ce n'est pas très difficile, t'inquiètes. Sinon, google te trouveras des sources en Js si tu cherches.
Pour ce qui est des balises:
Quand tu écris un message, tu as un bandeau pour l'édition:
B I U Quote Code Puce PuceN° Liste Image LienHTTP Flash Couleur ... Tu as des infos bulles. Explore un peu. ;-)
"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

axelpawel
Messages : 9
Inscription : 26 Avr 2016 23:50

Re: Ajouter plusieurs Audio/Problème

Message par axelpawel » 27 Avr 2016 14:02

Et bien, après une matinée de recherche j'ai enfin pu trouver une solution mais elle ne fonctionne pas tellement...
j'explique, ayant trouvé quelqu'un qui a eu le même problème et avait déjà postuler ( viewtopic.php?t=10421 ) j'ai décider de reproduire exactement le même shéma de solution, seul bémol bien oui sinon ce serait pas marrant: je ne peut pas déplacer le code ci-dessous aux indication noté d'un ************

Code : Tout sélectionner

var audio: AudioSource = GetComponent.<AudioSource>();
audio.clip = openDoor;
audio.Play();
Dans la partie qui ouvre et ferme ma porte, sinon Unity me nomme un souci ----> Assets/menu/Son menu principal.js(9,22): BCW0012: WARNING: 'UnityEngine.Application.LoadLevel(String)' is obsolete. Use SceneManager.LoadScene

Voici mon code actuellement en bon fonctionnement sans avoir déplacé mon code audio dans les parties désiré:

Code : Tout sélectionner

#pragma strict

public var openDoor: AudioClip;
public var closeDoor: AudioClip;

var smooth = 2.0;
var DoorOpenAngle = 90.0;
var Volume : float = 0.5;

private var open : boolean;
private var enter : boolean;
private var defaultRot : Vector3;
private var openRot : Vector3;

function Start(){
defaultRot = transform.eulerAngles;
openRot = new Vector3 (defaultRot.x, defaultRot.y + DoorOpenAngle, defaultRot.z);

}

//Main function
function Update (){
if(open){
//Open door
transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, openRot, Time.deltaTime * smooth);
***************
}else{
//Close door
transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, defaultRot, Time.deltaTime * smooth);
***************
}

if(Input.GetKeyDown("f") && enter){
open = !open;
	var audio: AudioSource = GetComponent.<AudioSource>();
		audio.clip = openDoor;
		audio.Play();
}
}


[b]//Partit qui n'a aucun interêt au problème, enfin je pense[/b]

function OnGUI(){
if(enter){
GUI.Label(new Rect(Screen.width/2 - 75, Screen.height - 100, 150, 30), "Press 'F' to open the door");
}
}

//Activate the Main function when player is near the door
function OnTriggerEnter (other : Collider){
if (other.gameObject.tag == "Player") {
enter = true;
}
}

//Deactivate the Main function when player is go away from door
function OnTriggerExit (other : Collider){
if (other.gameObject.tag == "Player") {
enter = false;
}
}

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

Re: Ajouter plusieurs Audio/Problème

Message par boubouk50 » 27 Avr 2016 14:27

axelpawel a écrit : Dans la partie qui ouvre et ferme ma porte, sinon Unity me nomme un souci ----> Assets/menu/Son menu principal.js(9,22): BCW0012: WARNING: 'UnityEngine.Application.LoadLevel(String)' is obsolete. Use SceneManager.LoadScene
Le warning est très clair (et ce n'est pas une erreur): la version d'Unity que tu utilises est plus récente et la fonction Application.LoadLevel () est obsolète, il faut la remplacer SceneManager.LoadScene ()

Ça n'a rien à voir avec ton pb.
"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

axelpawel
Messages : 9
Inscription : 26 Avr 2016 23:50

Re: Ajouter plusieurs Audio/Problème

Message par axelpawel » 27 Avr 2016 14:50

Encore merci pour ton éclairage, j'ai réglé le souci, Mais, reste un petit leger problème, voici mon code simplifier (je n'est pas mis les variable déclarer etc)

Code : Tout sélectionner

function Update (){
if(open){
//Open door
transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, openRot, Time.deltaTime * smooth);
var audio: AudioSource = GetComponent.<AudioSource>();
		audio.clip = openDoor;
		audio.Play();
}else{
//Close door
transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, defaultRot, Time.deltaTime * smooth);
var audio2: AudioSource = GetComponent.<AudioSource>();
		audio.clip = closeDoor;
		audio.Play();
}

if(Input.GetKeyDown("f") && enter){
open = !open;
}
}
En mettant les deux var audio1 et audio2 dans les partit respectif, mon Input.GetKeyDown("f") ne marche plus, c'est à dire que je n'arrive plus à ouvrir la porte rien ne s'affiche et aucun son ne sort...

Code : Tout sélectionner

var audio2: AudioSource = GetComponent.<AudioSource>();
		audio.clip = closeDoor;              // --------->closeDoor et  openDoor deux variables public associer à un son
		audio.Play();
Je peut seulement ouvrir la porte quand mon code se situe dans la section comme ci dessous

Code : Tout sélectionner

if(Input.GetKeyDown("f") && enter){
open = !open;
var audio2: AudioSource = GetComponent.<AudioSource>();
		audio.clip = closeDoor;
		audio.Play();
}
}
le problème est qu'avec cette méthode je ne peut placer qu'un son.. Désolé d'être lourd comme ça mais je n'y arrive vraiment pas à regler ce problème malgrès mes recherches intensives sur tout les forums..

Avatar de l’utilisateur
simonj
Messages : 293
Inscription : 29 Nov 2015 20:47
Localisation : Lyon

Re: Ajouter plusieurs Audio/Problème

Message par simonj » 27 Avr 2016 15:05

Salut,

Je suis désolé j'ai pas vraiment suivis les débats et le fil de discution, mais ça me semble étrange ça :

Code : Tout sélectionner

var audio2: AudioSource = GetComponent.<AudioSource>();
audio.clip = closeDoor;
audio.Play();
C'est normal que ça ne soit pas la même variable ? Tu déclares audio2 et tu ne l'utilises jamais...

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

Re: Ajouter plusieurs Audio/Problème

Message par boubouk50 » 27 Avr 2016 15:07

C'est normal, le code fait bien ce que tu lui dis de faire, tu ne l'as juste pas compris.

La fonction Update () est appelée à CHAQUE frame donc:

Code : Tout sélectionner

if(open){
	transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, openRot, Time.deltaTime * smooth);
	var audio: AudioSource = GetComponent.<AudioSource>();
	audio.clip = openDoor;
	audio.Play();
}
...
est appelé à CHAQUE frame, donc ton son est joué à CHAQUE frame.
Il faut donc jouer le son voulu à l'appui de la touche f. C'est à ce moment là que tu détermines si le son à jouer est celui de la porte qui s'ouvre ou de celle qui se ferme.

Code : Tout sélectionner

if(Input.GetKeyDown("f") && enter){
	open = !open;
	var audio: AudioSource = GetComponent.<AudioSource>();
	if (open)
		audio.clip =openDoor;
	else
		audio.clip = closeDoor;
	audio.Play();
}
EDIT - @SimonJ: bien vu également.
"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

Répondre

Revenir vers « Audio, musique et sons »