SendMessage - envoi une fois sur deux.

Résolu
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 - 11 juin 2014 à 10:07
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 - 13 juin 2014 à 08:24
Bonjour à tous,

J'ai un soucis en javascript qui me laisse perplexe (et vu que je n'utilise que très rarement cette techno, je vois pas).

J'ai une méthode :


function LoadImage(str)
{
//-->clearScene : vide l'affichage ; load3DFile : charge un contenu
u.getUnity().SendMessage('Comm', 'clearScene','');
//alert(500);
//sleep(3000);
//document.getElementById('void').innerHTML ="ici";
u.getUnity().SendMessage('Comm', 'load3DFile', str);
}

pour faire simple, cette méthode me permet d'afficher une pièce 3d .bref. Mon problème est le suivant :

Lorsque j'appel cette méthode, une fois sur deux l'ordre "load3DFile" n'est pas envoyé (le clearScene lui fonctionnant à tous les coup).
En rajoutant l'alert, à tous les coups ca fonctionne. Mais pour l'utilisateur je ne peux pas laisser ca comme ca. Je me suis donc dit que j'envoyais l'ordre trop tot (pensant que l'alert faisait office de tempo du coup) et j'ai donc essayé de le faire attendre 1 puis 2 puis 3 secondes mais j'ai toujours le même problème. Dans le doute je me suis dit que javascript devait peut être effectuer une action visuelle et j'ai donc mit à jours le contenu d'une div, ce qui n'a servi encore une fois à rien (cette fois je m'y attendais un peu mais dans le doute ... )

Je ne sais pas trop vers quoi me tourner, quelqu'un aurai une idée ?

merci d'avance.
naga

1 réponse

jordane45 Messages postés 38190 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 mai 2024 344
13 juin 2014 à 01:39
Hello,

Déjà ...
As tu regardé via le debogueur de script de ton navigateur si tu n'avais pas d'erreur lorsque ça ne fonctionne pas ?

Tu as regardé ce que vaut ta variable str lorsque ça plante ?

Et puis au cas où...n'hésites pas à aller sur le forum de Unity
http://forum.unity3d.com/forums/unity-support.10/

0
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 17
13 juin 2014 à 08:10
salut,
Il n'y a pas d'erreurs et j'ai oublié de préciser :
 une fois sur deux, avec la même chaine, l ordre "load3DFile" n est pas envoyé 

J'ai réussi à le faire fonctionner en ajoutant un timeOut de cette facon :


function LoadImg(
{
u.getUnity().SendMessage('Comm', 'clearScene','');
setTimeout('LoadImage("'+str+'")',100);
}
function LoadImage(str)
{
u.getUnity().SendMessage('Comm', 'load3DFile', str);
}


du coup ca fonctionne mais à part si unity n'a pas de pile d'instruction, ce qui me semble très étonnant vu que le cas d'un jeux c'est tout de même "très nécessaire", je ne comprends pas la raison.
Bon ca fait pas très propre mais vu que j'intègre le composant dans windev, faire communiquer unity et windev via un webbrowser fait que de toute facon j'ai du bidouillage partout x]
Je vais quand même poser la question sur le forum d'unity, il doit bien y avoir des antécédents (si j'ai une réponse je la collerai ici).
naga
0
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 17
Modifié par nagashima le 13/06/2014 à 08:25
c'est ca, il n'y a pas de pile d'instructions. du coup le soucis provient de notre module unity et non de jaavascript ^^ merci.
0
Rejoignez-nous