SendMessage - envoi une fois sur deux. [Résolu]

Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
- - Dernière réponse : nagaD.scar
Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
- 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
Afficher la suite 

1 réponse

Messages postés
26550
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 octobre 2019
316
0
Merci
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/

nagaD.scar
Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
16 -
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
nagaD.scar
Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
16 -
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.
Commenter la réponse de jordane45