Icone de chargement lors de la connexion a la base

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Camcam
Messages : 41
Inscription : 08 Déc 2016 16:33

Icone de chargement lors de la connexion a la base

Message par Camcam » 02 Fév 2017 15:14

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

Avatar de l’utilisateur
LieutenantMaster
Messages : 41
Inscription : 28 Jan 2017 16:38
Localisation : France
Contact :

Re: Icone de chargement lors de la connexion a la base

Message par LieutenantMaster » 02 Fév 2017 20:35

Coucou Camcam :)


Ceci est quelque chose que tu souhaite éviter ?

Image

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é :-D

Image
Image

Camcam
Messages : 41
Inscription : 08 Déc 2016 16:33

Re: Icone de chargement lors de la connexion a la base

Message par Camcam » 02 Fév 2017 22:05

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

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

Re: Icone de chargement lors de la connexion a la base

Message par simonj » 03 Fév 2017 02:41

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 !

Avatar de l’utilisateur
LieutenantMaster
Messages : 41
Inscription : 28 Jan 2017 16:38
Localisation : France
Contact :

Re: Icone de chargement lors de la connexion a la base

Message par LieutenantMaster » 03 Fév 2017 03:21

Code : Tout sélectionner

if (m_SqlLoading) {
_UILoadingScreen.Setactive(true);
} else {
_UILoadingScreen.Setactive(false);
}
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 toujours ;-)
Image

Camcam
Messages : 41
Inscription : 08 Déc 2016 16:33

Re: Icone de chargement lors de la connexion a la base

Message par Camcam » 03 Fév 2017 11:13

LieutenantMaster a écrit :

Code : Tout sélectionner

if (m_SqlLoading) {
_UILoadingScreen.Setactive(true);
} else {
_UILoadingScreen.Setactive(false);
}
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 toujours ;-)
C'est bien ce que je veux mais c'est quoi cette variable m_Sqloading ?

Pour moi la vrai solution serait de reussir a compiler avec la dernière version de la dll je pense :/

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

Re: Icone de chargement lors de la connexion a la base

Message par boubouk50 » 03 Fév 2017 11:42

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

Avatar de l’utilisateur
LieutenantMaster
Messages : 41
Inscription : 28 Jan 2017 16:38
Localisation : France
Contact :

Re: Icone de chargement lors de la connexion a la base

Message par LieutenantMaster » 03 Fév 2017 15:28

Ha ben tu m'en apprend une ! Bon allez faut que je regarde tout mon code à nouveau :-D

et sinon
Camcam a écrit :C'est bien ce que je veux mais c'est quoi cette variable m_Sqloading ?
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 contre
Dernière édition par LieutenantMaster le 03 Fév 2017 15:36, édité 1 fois.
Image

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

Re: Icone de chargement lors de la connexion a la base

Message par boubouk50 » 03 Fév 2017 15:35

Logique pure et simple:

Code : Tout sélectionner

if (true)
	true
else
	false
La condition est le résultat donc pas besoin de tester la condition pour avoir le résultat, on l'a déjà.
"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

Avatar de l’utilisateur
LieutenantMaster
Messages : 41
Inscription : 28 Jan 2017 16:38
Localisation : France
Contact :

Re: Icone de chargement lors de la connexion a la base

Message par LieutenantMaster » 03 Fév 2017 15:37

boubouk50 a écrit :

Code : Tout sélectionner

_UILoadingScreen.SetActive (m_SqlLoading);
je parlais surtout de la possibilité de mettre un boolean à la place du traditionnel true/false je voulais dire :gene:
Image

Répondre

Revenir vers « Unity le logiciel »