Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Page 22 sur 22 PremièrePremière ... 12141516171819202122
Affichage des résultats 631 à 644 sur 644
  1. #631

  2. #632
    3 ans que je bosse professionnellement sur un gros jeu avec Unity, malheureusement ça fait partie des trucs connus

  3. #633
    De mon côté j’ai aucun debug.log actif, j’ai un boolean pour les sortir ou non.
    Et j’ai fait sauter aussi tous les samples du profiler dans mon code.
    Ca reste pareil.

    Je me demande si cela vient pas des TryGetComponent en fait.

    J’en ai remplacé pas mal avec cette variante au lieu du GetComponent classique.

    Je vais faire un test... ça laisse rêveur ce genre de truc quand même.

  4. #634
    Le GetComponent c'est effectivement à éviter de faire à toutes les frames, ça peut couter très très cher. Il me semble qu'aujourd'hui Unity fait un peu de cache en interne, mais le faire soi même c'est un gain de performance garanti.

  5. #635
    La plupart de mes components sont mis en cache dès le start.

    Mais dans certains cas je ne vois pas comment les cacher.
    Par exemple, pour déterminer si un gameobject est un batiment ou une unité.
    Je fais un test sur le Trygetcomponent et après j’applique ce qu’il faut.
    Donc parfois oui j’ai pas mal d’appels si le nombre d’unités augmentent.

    Mais pourquoi générer autant en editor et pas en build.

  6. #636
    Question conne (puisque je connais pas ton code), tu peux pas plutôt différencier les objets différemment genre par des tags, leur nom, leur layer, ou une autre méthode moins gourmande ? Comme les autres l'on dit il vaut mieux garder les Update() et FixedUpdate() aussi légers que possible.
    Le code compilé passe sur tout un tas de choses qui peuvent provoquer un arrêt immédiat en mode éditeur (y compris les certaines NullException), il ne faut pas trop prendre le comportement/les perfs dans l'éditeur comme parole d'évangile quant au résultat final.

  7. #637
    Citation Envoyé par Grosnours Voir le message
    Question conne (puisque je connais pas ton code), tu peux pas plutôt différencier les objets différemment genre par des tags, leur nom, leur layer, ou une autre méthode moins gourmande ? Comme les autres l'on dit il vaut mieux garder les Update() et FixedUpdate() aussi légers que possible.
    Le code compilé passe sur tout un tas de choses qui peuvent provoquer un arrêt immédiat en mode éditeur (y compris les certaines NullException), il ne faut pas trop prendre le comportement/les perfs dans l'éditeur comme parole d'évangile quant au résultat final.
    Je pourrais effectivement passer par les tags pour éviter l’appel au getcomponent dans le if ça limiterait déjà.

    Il me restera alors le getcomponent pour accéder aux fonctions et variables du composant en lui-même.

    Mais ce que je retiens surtout de toutes les remarques et tips c’est que je suis pas mal côté optim de code et qu’il faut pas trop que je me soucie de ce truc en mode editor, je prendrai moins d’unités pour faire de l’optim, ça évitera de saturer l’éditeur, tout en sachant qu’en build je serai beaucoup mieux et que j’ai de la marge.

  8. #638
    Autre méthode plutôt que de chercher activement des objets : les faire s'enregistrer à leur création auprès d'un objet référence, dont on peut se servir pour accéder à tous les objets enregistrés et à leurs composants.
    Je ne sais pas si je suis clair.

  9. #639
    Citation Envoyé par Grosnours Voir le message
    Autre méthode plutôt que de chercher activement des objets : les faire s'enregistrer à leur création auprès d'un objet référence, dont on peut se servir pour accéder à tous les objets enregistrés et à leurs composants.
    Je ne sais pas si je suis clair.
    Tu veux dire les mettre en fils dans une hiérarchie ou les mettre dans une liste que tu fous quelques part ou y accéder rapidement ?
    Bon blog de critique littéraire : https://gnossiennes.wordpress.com/

  10. #640
    Citation Envoyé par Grosnours Voir le message
    Autre méthode plutôt que de chercher activement des objets : les faire s'enregistrer à leur création auprès d'un objet référence, dont on peut se servir pour accéder à tous les objets enregistrés et à leurs composants.
    Je ne sais pas si je suis clair.
    C’est ce que je fais dans d’autres circonstances dans mon code, mais là il semble d’après ce que j’ai lu/vu que le GetComponent reste supérieur en terme de perfos par rapport au parcours d’un array qui peut du coup s’allonger pas mal en fonction des objets actifs.

    Par objet j’ai maxi sept composants pour les unités les plus complexes ça limite l’impact de la recherche sur l’objet.

  11. #641
    Citation Envoyé par Molina Voir le message
    Tu veux dire les mettre en fils dans une hiérarchie ou les mettre dans une liste que tu fous quelques part ou y accéder rapidement ?
    Plutôt b) mais a) fonctionne tout aussi bien (il faut parfois se méfier de certains effets de bord des arborescences dans Unity mais là cela devrait aller).
    Tout dépend du code, des objets à spawn et du projet en général.
    Dans un de mes projets j'avais plutôt utilisé des tags pour retrouver rapidement toutes les sources de SFX ambiants en runtime mais j'aurai pu procéder autrement aussi.

    Citation Envoyé par Sifr Voir le message
    C’est ce que je fais dans d’autres circonstances dans mon code, mais là il semble d’après ce que j’ai lu/vu que le GetComponent reste supérieur en terme de perfos par rapport au parcours d’un array qui peut du coup s’allonger pas mal en fonction des objets actifs.

    Par objet j’ai maxi sept composants pour les unités les plus complexes ça limite l’impact de la recherche sur l’objet.
    Effectivement à toi de voir ce qui te convient le mieux.



    Au fait, si des gens par ici on réussi sans trop de problèmes à bake les paramètres d'illumination dans un prefab cela m'intéresse monstrueusement. J'en ai besoin pour une version de nuit de tous les éléments d'une ville low poly sans utiliser de sources lumineuses qui seraient très couteuses vu le nombre d'instances. Et les matériaux émissifs ont leur limites, on ne peut pas les utiliser pour tous les cas.
    Il y a des threads de ce genre : https://forum.unity.com/threads/prob....324514/page-9 mais après avoir testé à peu près tous les scripts donnés là dedans tout ce que je peux conclure c'est que cela fonctionne sans fonctionner et que bien entendu cela dépend totalement de la version d'Unity.
    Il y a bien cela : https://unity.com/how-to/advanced/op...g-mobile-games mais d'une part je ne peux pas tout utiliser là dedans et d'autre part j'en pige bien la moitié pas plus, je dois être un peu simplet.

  12. #642
    Tiens, une question me taraude.

    Je pensais que le poids de la build finale était majoritairement fonction des assets (textures, sons et meshs/anims principalement). Mais je constate, en rajoutant des scenes à ma build, qui ne font que réutiliser les mêmes assets que les autres scenes déjà présentes, le poids de la build augmente systématiquement de façon non négligeable.
    En gros, avec une map j'avais un zip de 150Mo, avec deux maps 250Mo, et avec trois maps 350Mo.
    Et je vois bien en effet dans le répertoire Data que levelX et levelX.resS pèsent chacun un bon poids, et j'imagine que mes assets sont dans les fichiers sharedassets.

    C'est quoi du coup, tous ces Mo dans les level ? Les lightmaps ? Parce que mes niveaux sont assez simples et je suis pas sûr de ce qui pourrait nécessiter autant d'information pour être représenté (cross topic prototypes )

  13. #643
    Cela dépend de comment tu as éclairé la scène bien sur. Question : est-ce que tu as regardé ce que te donne l'Editor Log après un build ? Une autre question est quel poids font tes assets seuls ?

  14. #644
    Un e-book sur l'optimisation de jeux Unity, gratuit pour la journée: https://www.packtpub.com/free-learning

    P.S.: Ca ressemble à de la pub de m**** mais je n'ai aucun intérêt chez Packt Publishing.

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
  •