nagaD.scar
Messages postés4280Date d'inscriptionsamedi 8 septembre 2007StatutMembreDernière intervention 4 janvier 2023
-
11 juin 2014 à 10:07
nagaD.scar
Messages postés4280Date d'inscriptionsamedi 8 septembre 2007StatutMembreDerniè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 ?
nagaD.scar
Messages postés4280Date d'inscriptionsamedi 8 septembre 2007StatutMembreDernière intervention 4 janvier 202316 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
13 juin 2014 à 08:10
Il n'y a pas d'erreurs et j'ai oublié de préciser :
J'ai réussi à le faire fonctionner en ajoutant un timeOut de cette facon :
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
Modifié par nagashima le 13/06/2014 à 08:25