Icone de chargement lors de la connexion a la base
Icone de chargement lors de la connexion a la base
Bonjour,
Voila j'ai réussi à me connecter avec ma unity et un script c# à une base de données Mysql (avec Mysql.data.dll) seulement j'ai un petit problème qui est esthétique , lorsque je clique sur le bouton se connecter il y a un petit temps légèrement cours ou le bouton reste appuyer comme si ça bugait puis ça fonctionne, je devine que c'est juste le temps que l'application se connecte à la base.... J'aimerais à la place afficher une icone de chargement (un rond qui tourne ) seulement je ne sais absolument pas comment faire...
Je vous remercie
Voila j'ai réussi à me connecter avec ma unity et un script c# à une base de données Mysql (avec Mysql.data.dll) seulement j'ai un petit problème qui est esthétique , lorsque je clique sur le bouton se connecter il y a un petit temps légèrement cours ou le bouton reste appuyer comme si ça bugait puis ça fonctionne, je devine que c'est juste le temps que l'application se connecte à la base.... J'aimerais à la place afficher une icone de chargement (un rond qui tourne ) seulement je ne sais absolument pas comment faire...
Je vous remercie
- LieutenantMaster
- Messages : 41
- Inscription : 28 Jan 2017 16:38
- Localisation : France
- Contact :
Re: Icone de chargement lors de la connexion a la base
Coucou Camcam
Ceci est quelque chose que tu souhaite éviter ?
Tu peux faire déplacer la camera ou changer de camera vers une autre position avec une zone restant dans le thème de ton jeu. Faire comme xcom 2 la fait. Une camera qui s'approche puis qui s'éloigne de l'élément principale, quelques éléments décoratifs autour et le tour est joué
Ceci est quelque chose que tu souhaite éviter ?
Tu peux faire déplacer la camera ou changer de camera vers une autre position avec une zone restant dans le thème de ton jeu. Faire comme xcom 2 la fait. Une camera qui s'approche puis qui s'éloigne de l'élément principale, quelques éléments décoratifs autour et le tour est joué
Re: Icone de chargement lors de la connexion a la base
Salut ! merci pour ton message, en faite c'est une vrai application que je fais, pas un jeux et justement c'est bien ce que tu as montrer que je veux mais je veux que ça apparaisse pendant que ma fonction open() tourne , autrement dis quand ça se connecte à la base de données , j'ai essayer de faire apparaitre une image avant puis appeller la fonction open puis la fermer comme ça
image visible oui
sql.open();
image.visible non
mais malheureusement ça ne change rien l'image n'apparaît pas et le bouton a toujours ce petit temps très cours
de plus j'utilise une dll qui n'est pas la dernière car sinon unity dis qu'il ne trouve pas la référence, du coup je n'ai pas la fonction openassyn() qui je pense pouvait reglé le problème
Ps: c'est une application mobile
image visible oui
sql.open();
image.visible non
mais malheureusement ça ne change rien l'image n'apparaît pas et le bouton a toujours ce petit temps très cours
de plus j'utilise une dll qui n'est pas la dernière car sinon unity dis qu'il ne trouve pas la référence, du coup je n'ai pas la fonction openassyn() qui je pense pouvait reglé le problème
Ps: c'est une application mobile
Re: Icone de chargement lors de la connexion a la base
Salut,
Quel est ton niveau en programmation ?
Tu peux utiliser un Thread pour ouvrir ta base. Cela te permet de ne pas encombrer le fil d'éxécution principal et donc de ne pas faire freeze ton application. Mais c'est à utiliser TRES TRES précautionneusement car Unity n'est "Thread Safe". Je ne vais pas rentrer dans les détails mais en gros tu ne peux pas utiliser de fonctions liées à Unity dans un Thread. Mais je pense que si c'est juste pour faire un appel à un DLL, ça doit être possible.
Je mets des gros guillemets sur cette solution car c'est vraiment réservé à quelqu'un qui maîtrise son code car c'est très embêtant à débuger et ça peut entraîner des problèmes si tu ne fais pas les choses correctement.
PS : Oui la fonction openassyn() permet d'ouvrir de manière asynchrone et donc de ne pas créer de freeze. Dommage !
Quel est ton niveau en programmation ?
Tu peux utiliser un Thread pour ouvrir ta base. Cela te permet de ne pas encombrer le fil d'éxécution principal et donc de ne pas faire freeze ton application. Mais c'est à utiliser TRES TRES précautionneusement car Unity n'est "Thread Safe". Je ne vais pas rentrer dans les détails mais en gros tu ne peux pas utiliser de fonctions liées à Unity dans un Thread. Mais je pense que si c'est juste pour faire un appel à un DLL, ça doit être possible.
Je mets des gros guillemets sur cette solution car c'est vraiment réservé à quelqu'un qui maîtrise son code car c'est très embêtant à débuger et ça peut entraîner des problèmes si tu ne fais pas les choses correctement.
PS : Oui la fonction openassyn() permet d'ouvrir de manière asynchrone et donc de ne pas créer de freeze. Dommage !
- LieutenantMaster
- Messages : 41
- Inscription : 28 Jan 2017 16:38
- Localisation : France
- Contact :
Re: Icone de chargement lors de la connexion a la base
Code : Tout sélectionner
if (m_SqlLoading) {
_UILoadingScreen.Setactive(true);
} else {
_UILoadingScreen.Setactive(false);
}
Re: Icone de chargement lors de la connexion a la base
C'est bien ce que je veux mais c'est quoi cette variable m_Sqloading ?LieutenantMaster a écrit :Un truc comme sa, après suffit juste de définir que tant que tu a pas reçu de réponse du sql ben sa charge toujoursCode : Tout sélectionner
if (m_SqlLoading) { _UILoadingScreen.Setactive(true); } else { _UILoadingScreen.Setactive(false); }
Pour moi la vrai solution serait de reussir a compiler avec la dernière version de la dll je pense
- boubouk50
- ModoGenereux
- Messages : 6268
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Icone de chargement lors de la connexion a la base
Je ne sais pas si cette variable existe vraiment, mais il s'agirait d'un booléen qui récupérerait l'état de chargement de la BDD. Tant qu'elle charge, alors ton icone est visible (1e condition) sinon (elle est chargée) elle se masque. Sa visibilité est directement liée à l'état de chargement. On pourrait même aller plus vite pour éviter une condition:
Code : Tout sélectionner
_UILoadingScreen.SetActive (m_SqlLoading);
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
- LieutenantMaster
- Messages : 41
- Inscription : 28 Jan 2017 16:38
- Localisation : France
- Contact :
Re: Icone de chargement lors de la connexion a la base
Ha ben tu m'en apprend une ! Bon allez faut que je regarde tout mon code à nouveau
et sinon
et sinon
le m_SqlLoading était un exemple, rajoute un boolean qui s'active ou se désactive selon l'état voulu ( ici si le chargement a toujours lieu ou non ). Tu peux créer un tableau avec tout les éléments du sql et quand tout est transféré .Envoyer une confirmation au client. Je m'y connais pas en SQL donc la je parle dans le théorique par contreCamcam a écrit :C'est bien ce que je veux mais c'est quoi cette variable m_Sqloading ?
Dernière édition par LieutenantMaster le 03 Fév 2017 15:36, édité 1 fois.
- boubouk50
- ModoGenereux
- Messages : 6268
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Icone de chargement lors de la connexion a la base
Logique pure et simple:
La condition est le résultat donc pas besoin de tester la condition pour avoir le résultat, on l'a déjà.
Code : Tout sélectionner
if (true)
true
else
false
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
- LieutenantMaster
- Messages : 41
- Inscription : 28 Jan 2017 16:38
- Localisation : France
- Contact :
Re: Icone de chargement lors de la connexion a la base
je parlais surtout de la possibilité de mettre un boolean à la place du traditionnel true/false je voulais direboubouk50 a écrit :Code : Tout sélectionner
_UILoadingScreen.SetActive (m_SqlLoading);