Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Affichage des résultats 1 à 11 sur 11
  1. #1
    Bonjour à tous,

    En général, lorsque j'ai des problèmes dans mes scripts j'arrive à m'en sortir en trouvant la réponse sur divers forums consacrés à unity mais pour ce soucis la, je n'ai pas réussi à trouver de réponses. Je me décide donc à m'inscrire ici pour poser la question, en espérant qu'une âme charitable puisse m'aider.

    Donc mon soucis. Je suis entrain de développer un jeu dans lequel je laisse libre cours à l'imagination des joueurs : a savoir qu'ils pourront modeler le monde comme ils le désirent, ils pourront créer des structures, créer des scripts, bouger les structures, etc...

    Je suis donc entrain de coder tout cela, et cela fonctionne, par contre lorsque je compile j'ai des erreurs.

    Par exemple cette erreur : Assets/Scripts/Importer.js(129,36): BCE0005: Unknown identifier: 'AssetDatabase'.

    Mon script importer.js permet aux joueurs d'importer des éléments (3d, sons, textures, etc...) directement dans les assets unity.

    Voici un bout de ce script pour ceux que ça intéresse

    Code:
    if(etattooglefichiermusique){ //si on doit importer un fichier son
                    //on verifie son extension
                    extensionok = false;
                    for(var extension : String in extensionsfichiermusique) //scan des extensions possibles pour un fichier son
                    {
                        if(fichieraimporter.Substring(fichieraimporter.LastIndexOf(".")) == extension)
                        {
                        extensionok = true; //l'extension est ok
                        }
                    }
                    if(extensionok){ //l'extension est ok, on paramétre donc le chemin de destination
                        chemindestination = "Assets/Resources/Import/Sons";
                    }else{
                        //erreur sur l'extension
                        messagepourutilisateur = "Le fichier n'est pas correct, verifier son type";
                    }
                }
                
                if (chemindestination != ""){ //on lance l'import uniquement si un chemin de destination est correct
                    messagepourutilisateur = "Importation en cours, merci de patienter";
                    assetdestination = chemindestination + fichieraimporter.Substring(fichieraimporter.LastIndexOf('/'));
                    assetdestination = AssetDatabase.GenerateUniqueAssetPath(assetdestination);
                    System.IO.File.Copy(fichieraimporter, assetdestination, true);
                    AssetDatabase.SaveAssets();
                    AssetDatabase.Refresh();
                    messagepourutilisateur = "Importation terminée";
                }
    En fait le soucis proviens du fait que la fonction AssetDatabase est une fonction editor donc inutilisable dans un projet compilé, je me retrouve alors coincé.

    Auriez-vous une idée, pour pallier à ce problème? Pouvoir faire ce que j'en envie et pouvoir le compiler.

    Je n'ai pas mis toutes les erreurs mais toutes sont dues au fait que j'utilise des fonctions editor, notamment draganddrop, assetdatabase, editorapplication.

    En vous remerciant par avance pour avoir lu tout ce pavé et m'aider à trouver une solution.

  2. #2
    Salut et bienvenue ici,

    pour ce qui est de charger des fichiers texte au runtime tu peux te servir de la classe WWW. Pour ce qui est de fichiers binaires comme des sons ou autres, cela n'est malheureusement pas possible à ma connaissance, en effet les fichiers doivent déjà avoir été traités pendant le processus de build pour être accessibles. La seule exception à ça sont les "assets bundle", ça te permet de faire des packs de ressources que tu vas charger dynamiquement à l'exécution, mais il faut que les packs aient été "pré-préparés" dans Unity avant (et sauf erreur la création des assets bundle était réservée à Unity Pro).

    Comme tu as pu voir par toi même, tu ne peux en effet pas appeler certaines classes "editor" depuis le runtime.

  3. #3
    Bonjour Black Wolf,

    Deja, je te remercie d'avoir repondu à ma question. Effectivement j'ai regardé le bundle asset que je ne connaissais pas et qui a l'air trés interressant.
    Reste à savoir si il requiert la version pro pour la création d'asset ou pour l'importation ou même les deux. J'ai une version pro de unity donc si cette fonctionnalité a besoin de la version pro uniquement pour l'importation ca me conviens, au pire les utilisateurs installeront la version gratuite s'ils veulent créer du contenu.
    Il ne me reste plus qu'a trouver quelqu'un qui a une version gratuire pour tester si on peux faire la partie création avec cette version.

    Merci encore, et je vous tiendrai au courant si ca fonctionne, ca peux aider du monde.

  4. #4
    A ce que j'ai compris c'est pour la création du "asset bundle" qu'il faut la version pro. Maintenant y a pas mal de fonctionnalités qui sont passées gratuites ces derniers temps mais j'ai rien vu passer concernant ce point là. C'est vrai que ce n'est pas pratique de pas pouvoir rajouter dynamiquement du contenu au runtime.

  5. #5
    Bon ben, vu que j'avais un peu de temps j'ai codé rapidement un script pour faire l'exportation d'un asset bundle, et ça fonctionne avec une licence pro, par contre dés que je vire ma licence pro et que je met une licence gratuite j'ai un joli message me disant que l'exportation demande une licence pro. Je suis coincé de ce coté la.
    Il faut que je trouve une autre solution si je veux pouvoir réaliser ce projet. Oui, tu as raison, il manque de grosses fonctionnalités à unity, un module de GUI de type Wysiwyg serait vraiment bien à rajouter (c'est lourd de devoir calculer à la main la position de tous les éléments, surtout lorsque tu en as beaucoup, et devoir attendre la compilation si jamais tu t'est planté), la partie réseau n'est pas super bien gérée, tu as souvent des erreurs à la con, et finalement, le fait de pouvoir rajouter dynamiquement du contenu manque aussi. Bref, je me vois mal changé de moteur maintenant, cela fait environ 1 an que je bosse sur unity, donc devoir désapprendre les trucs et changer, ça m'ennuierait plus qu'autre chose. Je continue à chercher, si tu as d'autres idées n’hésites pas, merci.

  6. #6
    Pour la GUI ça ne devrait pas tarder, ils nous promettent un nouveau système pour une version 4.0x ultérieure, puis en attendant y a toujours des solutions comme NGUI qui marchent plutôt pas mal. Pour la partie réseau entre Photon qui est maintenant dispo gratuitement mais un peu/beaucoup usine à gaz à ce que j'ai lu, ou TNet du concepteur d'NGUI, donc t'as de quoi faire aussi . En plus maintenant qu'ils font des promo régulières sur l'asset store y a moyen d'avoir ces plugins à pas cher.

    Pour le rajout dynamique de contenu, je pense que la limitation vient des mobiles et du plugin web, ou généralement ton contenu doit être "signé/vérifié" et connu plus ou moins à l'avance. Le système d'assets bundle à d'ailleurs été rajouté pour contourner la limitation de taille des applications dans les app stores, histoire que ton jeu puisse downloader son contenu depuis un serveur par la suite.

  7. #7
    Moue, NGUI, je l'ai testé et j'ai vite fait chemin inverse, c'est encore moins optimisé que le code ^^. Ou alors je n'ai pas su l'utiliser.
    Pour photon, je le connaissais de nom, mais jamais eu l’occasion de m'en servir, j'ai dl la version d'essai et vais lire la doc pour voir ce que ça donne et si ça vaux vraiment le coup.

    Quand à la mise à jour de contenu en temps réel, je pencherai plus pour le plugin web, car justement, le fait de pouvoir "streamé" du contenu au lieu de tout mettre dans l'application permet d’alléger l'appli donc est utile pour les mobiles.

    Dans tous les cas, a priori je vais devoir stopper ma superbe idée de superbe jeu qui allait tout casser. ^^ . J’espère juste que quelqu'un aura une idée pour gérer cela et développe un plugin sur unity. Je n'ai pas franchement envie de changer de moteur, sachant que je ne sait même pas si un autre moteur fonctionne aussi bien que unity, avec un bon système de script (pas du langage propriétaire), et permet justement de faire du rajout dynamique.

    Peut-être que quelqu'un passant totalement par hasard par ici, vas dire "un moteur existe , il permet les scripts en js, permet tout ce que fait unity et permet ce rajout" mais ne rêvons pas trop.

  8. #8
    Salut,

    Juste pour préciser ce que dit Black Wolf, avec la classe WWW, on peut aussi charger des vidéos et des textures, pas seulement du texte. Par contre pour des mesh ou du son, je suis pas vraiment sûr (http://docs.unity3d.com/Documentatio...rence/WWW.html)

    J'ai aussi testé NGUI au boulot, c'est une belle usine à gaz effectivement, mais pour quelqu'un qui préfère bosser sur un éditeur que sur du code ça fait le boulot, mais faut vraiment un temps pour se faire à la philosophie (et Unity a annoncé un remaniement de leur GUI pour la 4.3, j'attends plutôt de voir ce que ça va donner).

  9. #9
    Ah ouais mince j'avais juste survolé 2 ou 3 infos trouvées sur les forums sur la classe WWW mais en effet elle permet de charger texte, son et textures. Pour des mesh c'est possible de les charger via un fichier texte, telle qu'un mesh en .obj par exemple. J'étais même tombé sur un plugin qui faisait l'import d'obj (ce n'est pas très compliqué à coder).

    Pour NGUI on s'y fait assez vite, on se perd vite dans la complexité car le type fournit toutes les sources, mais t'as vraiment besoin de n'en utiliser qu'une toute petite partie. Pour le remaniement de la GUI, y aura quelques ressemblances avec NGUI vu que son auteur a été embauché par Unity, mais il dit avoir vraiment amélioré beaucoup de choses et que ça n'aura pas grand chose à voir avec NGUI en terme de simplicité et possibilités.

  10. #10
    Un remaniement de la GUI??? wouahh, vive la 4.3, je vais l'attendre avec impatience.
    En ce qui concerne la classe WWW. je m'en servais uniquement pour faire des liaisons de type php, je n'avais jamais poussé plus loin la recherche. Si tu me dit que cela peux aussi servir à faire de l'import je vais regarder plus en détail.
    Même si cela n'importe que des obj c'est déjà mieux que rien. Merci de vos recherches.

  11. #11
    Pour les obj c'est toi qui va devoir les parser et les transformer en mesh, mais c'est pas trop trop compliqué à faire bien qu'il y ait 2 ou 3 trucs un peu chiants (genre le format obj ne prévoit pas d'inclure tangeante et binormals dont se servent une bonne partie des algo de normal mapping entre autres...).

    Pour la GUI j'aimerais bien que ça soit pour la 4.3 mais je ne pense pas, ils ont recommencé de zéro plusieurs fois, cette fois ils nous le promettent vraiment pour le cycle 4.x mais à mon avis ça sera plutôt pour la 4.5, bref dans un moment. La 4.3 ajoutera quelques autres trucs sympa comme l'ajout d'un mode "jeu 2D", avec des outils appropriés et l'ajout du moteur physique Box2D qui s'en sort mieux que PhysX pour la simulation purement 2D.

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •