[DB-AL] audioSource.clip = col[3]

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
Eddie
Messages : 9
Inscription : 28 Avr 2017 13:28

[DB-AL] audioSource.clip = col[3]

Message par Eddie » 28 Avr 2017 23:41

Bonsoir, c'est la première fois que je poste sur le forum pour vous demander de l'aide.
Je suis en train de développer une application BlindTest, seulement à usage personnel pour les soirées entre copains, et je me heurte à quelques problèmes.
Pour commencer, j'aimerais que l'application soit compatible pas seulement avec mon mobile mais aussi avec ceux des mes amis.
Le problèmes c'est que nous n'avons pas tous les mêmes modèles et donc les mêmes résolutions.
De base, pour le moment, je l'ai réglée sur la résolution de mon smartphone en modifiant la résolution du display d'Unity (1028x1920) ce qui affecte la taille du Canvas et comme ça je peut placer les éléments comme je désire qu'ils apparaissent sur mon mobile.
Comment faire pour que l'application soit "Responsive" sans que des éléments se retrouvent zoomés, coupés et/ou hors de l'écran?

Et enfin, j'utilise un tableau ou j'affecte pour chaque ligne un auteur, un titre et un chiffre. Ensuite je choisie aléatoirement la ligne.
J'aimerais que la 3eme colonne de mon tableau (le chiffre unique pour chaque ligne) me permette de modifier le clip audio.
Au début de mon script, je définis autant d'AudioClip que de ligne dans mon tableau et tous portent le nom d'un chiffre.
Je veux donc changer de source audio (de clip) à chaque fois que je clique sur un bouton, et que la nouvelle musique soit choisie aléatoirement via mon tableau.
Ce qui fait que pour imaginons une seule ligne, j'ai :

Code : Tout sélectionner

public AudioClip Chiffre1;
public int Nr;
string[] BlindTest = new string[1];

void Start()
    {
        BlindTest[0] = "Auteur,Titre,Chiffre1";
    }

 public void CliqueBoutonSuivant()

    {
    	GameObject Musique = GameObject.Find("Musique");
        AudioSource audioSource = Musique.GetComponent<AudioSource>();
        Nr = Random.Range(0, BlindTest.Length);
        string[] Col = BlindTest[Nr].Split(',');
        audioSource.clip = col[2];
    }
Mais bien évidemment impossible de convertir le type string en audio clip.
Comment faire?

Merci de votre aide!

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

Re: [DB-AL] audioSource.clip = col[3]

Message par Max » 29 Avr 2017 16:25

Hello,

Il existe plusieurs façons d'aborder le problème.
Par exemple, as-tu regardé du coté des Structures ?
genre

Code : Tout sélectionner

struct ClipStructure {
    public  string auteur;
    public string titre;
    public AudioClip clip;
 }
 ...
 ...
 ClipStructure[] blindTest ;
(à adapter selon tes besoins)
tu peux même rajouter un '[System.Serializable] sur ta structure pour garantir un accès direct à partir de l'inspector.
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

Eddie
Messages : 9
Inscription : 28 Avr 2017 13:28

[DB-AL] Besoin d'aide pour un quiz assez poussé

Message par Eddie » 14 Mai 2017 12:03

Bonjour!
Je post pour demander de l'aide sur un projet Unity global.
En effet j'aimerais créer une application quiz ou plus précisément un blind test pour les soirées entre amis.
Je sais qu'il existe déjà des application du type sur les stores, mais j'aimerais ma propre application pour avoir les musiques que je souhaite, pouvoir en ajouter quand je veux, créer la forme que je veux et surtout tout cela gratuitement!

J'ai déjà fait une partie de l'interface et même du code mais je me heurte à beaucoup trop de problèmes que je ne peut pas résoudre étant donné mon niveau débutant en C#.
Je tient tout de même à préciser que je connais les bases du C# (ou pas lol). En effet, je créais avant des applications en C# via Visual Basic visant à contrôler et éditer en temps réel la mémoire de ma Playstation 3 connecté à mon réseaux (une console spéciale développeur), je transformais une saisie en Little/Big Endian etc...

Bref je vous expose ici mes attentes :
- Pourvoir remplir dans un "tableau" (ou alors proposez moi d'autres solutions) : titres, auteurs, liens vers Spotify, pochette d'album, et nom de la piste audio liée.
- Utiliser un aléatoire pour choisir une ligne au hasard dans ce tableau et l'afficher sans avoir de répétition lors d'une partie (comme si chaque ligne était supprimée dès qu'elle était utilisée) de sorte que la partie s'arrête quand toutes les musiques sont passées.

Les problèmes que j'ai sont :
- En utilisant un tableau, il est impossible d'utiliser une "case" de celui-ci pour viser une une piste audio précise.
- Mon aléatoire ne permet pas d'éviter les répétitions.

Bonus :
- J'aimerais pouvoir utiliser une librairie libre sur internet du genre http://www.allmusic.com/ pour afficher une mini biographie pour chaque auteur, et surtout la cover de chaque titre/album (à l'exemple du lecteur BlackPlayer sur Android), mais je ne sais pas comment m'y prendre.


Merci beaucoup pour votre aide! :coeur:
 ! Message de : boubouk50
Un sujet = un post. Merci de pas éparpiller vos demandes et remplir le forum de posts doublés inutilement

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

Re: [DB-AL] Besoin d'aide pour un quiz assez poussé

Message par boubouk50 » 15 Mai 2017 09:52

Salut,

2/ Pour éviter les répétitions d'aléatoire, il faut aller piocher dans une liste d'index. Tu vas mettre en place une liste qui contient les index du tableau de données. Lorsqu'un élément est choisi, il faut le retirer de la liste. Puis tu recommenceras autant de fois que tu veux jusqu’à ce qu'il n'y ait plus aucun index dans la liste.

1/ En utilisant un tableau, il est impossible d'utiliser une "case" de celui-ci pour viser une une piste audio précise.
Lapin compris. Que mets-tu dans ton tableau? Tu peux utiliser des structures par exemple.
"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

Eddie
Messages : 9
Inscription : 28 Avr 2017 13:28

Re: [DB-AL] audioSource.clip = col[3]

Message par Eddie » 15 Mai 2017 18:12

Salut boubouk50.

1. Merci pour tes informations, je vais me pencher là-dessus !
2. Dans mon tableau, j'utilise plusieurs lignes (chacune correspond à une musique) et chaque case des différentes colonnes définie le titre, l'auteur, le lien vers Spotify, et j'aimerais que la dernière colonne puisse définir l'AudioClip liée à la musique correspondante.

Du genre :
Image

Je ne rencontre aucun problème pour changer le texte de mes deux labels (auteur et titre) ainsi que pour changer le lien d'ouverture lors du clique sur mon bouton "Ecouter sur Spotify". Par contre impossible de démarrer la lecture d'un AudioClip lié à mon tableau même si je l'ai ai tous définis dans l'inspector.

De plus j'ai une toute petite question. J'utilise une tabulations pour une sorte de menu. Le mieux c'est chaque tab = une scène (pb : scènes précédente remise à zéro + navigation lente) ou chaque tab = un gameobjet que je cache suivant la tab active (pb : j'ai peur que ça fasse trop d'éléments chargés dans une seule scène).

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

Re: [DB-AL] audioSource.clip = col[3]

Message par boubouk50 » 16 Mai 2017 09:21

Pour le coup j'utiliserai une BDD externe que je remplirai indépendamment sans passer par l'application ou Unity. Ça te permettra de continuer à utiliser et compléter ton application sans avoir à recompiler le bousin.

Pour les AudioClips, ce n'est pas trop mon domaine, mais tu peux les charger avec Resources.Load () depuis un dossier Resources.
Tu peux aussi les récupérer ailleurs avec la classe WWWAudioExtensions
"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

Eddie
Messages : 9
Inscription : 28 Avr 2017 13:28

Re: [DB-AL] audioSource.clip = col[3]

Message par Eddie » 16 Mai 2017 20:20

J'y avais pensé mais le problème c'est que j'ai besoin de pouvoir utiliser l'application sans avoir de connexion internet. :/

Sinon pour mon autre message (scènes ou gameobjects), tu aurais une idée de la meilleure solution?

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

Re: [DB-AL] audioSource.clip = col[3]

Message par boubouk50 » 17 Mai 2017 09:29

Tu peux très bien mettre des liens sur des fichiers locaux. Ce n'est pas parce que la classe s'appelle WWW que tu dois obligatoirement avoir une connexion internet...
Eddie a écrit :De plus j'ai une toute petite question. J'utilise une tabulations pour une sorte de menu. Le mieux c'est chaque tab = une scène (pb : scènes précédente remise à zéro + navigation lente) ou chaque tab = un gameobjet que je cache suivant la tab active (pb : j'ai peur que ça fasse trop d'éléments chargés dans une seule scène).
Je n'ai pas compris ce que tu cherches à faire. Qu'appelles-tu tabulation? Un onglet?
"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

Eddie
Messages : 9
Inscription : 28 Avr 2017 13:28

Re: [DB-AL] audioSource.clip = col[3]

Message par Eddie » 17 Mai 2017 13:31

Oui voilà exactement.
Image

Comme tu peux le voir "Jouer" et "Thèmes". :)

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

Re: [DB-AL] audioSource.clip = col[3]

Message par boubouk50 » 17 Mai 2017 14:04

Pour le coup, je te dirai d'avoir la scène de menu (celle en image) avec tout d'incorporé. Tabulations Thèmes et Jouer. Et une scène pour le Quiz. Tu auras 2 Canvas donc, celui de l'image (Jouer) et celui de Thèmes. Tu pourras passer de l'un à l'autre en afficher qu'un seul des deux.
"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 « (C#) CSharp »