Page 1 sur 2

Joueur tombe dans le vide dans la version build mais pas dans l'éditeur

Publié : 23 Jan 2020 23:01
par calypsomen
Bonjour à tous!

Je rencontre un problème très étrange dans mon jeu, qui est totalement incohérent étant donné qu'il se produit dans la version build mais pas dans l'éditeur.
Le joueur tombe dans le vide dans la version build mais pas dans l'éditeur. Je prend le temps de charger tous les objets de la map avant d'instantier le joueur. Il possède bien un collider, le terrain également. Je peux me déplacer avec le personnage sur mon terrain sans soucis dans l'éditeur Unity mais pas sur la version build, alors qu'elle est totalement identique.
Je ne comprends donc pas du tout, j'espère que vous pourrez m'aider, c'est très curieux d'autant plus qu'en mode développement je n'ai pas de logs en particulier..

Je vous remercie par avance pour votre aide!

Re: Joueur tombe dans le vide dans la version build mais pas dans l'éditeur

Publié : 24 Jan 2020 09:34
par boubouk50
Salut,
Ce n'est pas incohérent, en éditeur tu n'es ni limité ni contraint, contrairement au build.
As-tu des données instanciées depuis une ressource externe? Il se pourrait qu'un chemin ne soit pas valide en build et empêche l'instanciation.
Aussi, as-tu du code platform-dependent? C'est à dire compilé uniquement pour l'éditeur (par exemple).
Les logs sont ici: C:\Users\<YourUserName>\AppData\LocalLow\<AppCompanyName>\<ProjectName>

Re: Joueur tombe dans le vide dans la version build mais pas dans l'éditeur

Publié : 24 Jan 2020 13:29
par calypsomen
Merci pour ta réponse rapide!

J'ai des données de map instanciées via AssetBundle mais même sans objets sur la map, avec seulement le terrain, le joueur tombe quand même.
Le joueur n'est pas instancié et est déjà présent dans la scène.
Je ne remarque rien de spécial dans les logs, à part des erreurs "Failed to clean mesh", je ne sais pas si c'est lié.

Re: Joueur tombe dans le vide dans la version build mais pas dans l'éditeur

Publié : 25 Jan 2020 13:44
par Max
Bonjour,
calypsomen a écrit :
24 Jan 2020 13:29
Je ne remarque rien de spécial dans les logs, à part des erreurs "Failed to clean mesh", je ne sais pas si c'est lié.
il me semble que cela peut être lié à un soucis de création du meshcollider par PhysX (lié à ton terrain donc ? )
Ce qui expliquerait de base pourquoi ton personnage passe à travers le terrain, ne possédant pas de fait de collider.
Alors pourquoi cela fonctionne dans l'éditeur et pas en build, ben là...???

Re: Joueur tombe dans le vide dans la version build mais pas dans l'éditeur

Publié : 25 Jan 2020 16:14
par DevAmat
Ton mesh est en static?

Re: Joueur tombe dans le vide dans la version build mais pas dans l'éditeur

Publié : 26 Jan 2020 00:20
par calypsomen
J'ai finalement réglé le problème en trouvant le gameobject qui causait cela. En le supprimant de la scène, je n'ai plus de soucis. Il était en effet en static, mais aucune idée de pourquoi ce gameobject a provoqué ça.. Curieux, merci pour votre aide!

Re: [RESOLU] Joueur tombe dans le vide dans la version build mais pas dans l'éditeur

Publié : 27 Jan 2020 14:42
par DevAmat
Lorsque ton "GameObjet" dans ta scène est en "static" Unity effectue une optimisation.
De ce fait si ensuite tu veux ajouter des "colliders" sur ce"meshe" en "runtime", tu n'as pas le résultat escompté.
Notamment ton "collider" ne s'adaptera pas normalement au "mesh".
Je ne suis pas super bien renseigné sur ce sujet, faudrait trouver une source pour en être certain mais j'ai déjà personnellement été confronté à ce sujet.

PS: Cette optimisation des "meshes" "static" se fait à la compilation du projet, d'où cette différence de comportement ente l'éditeur et l'exécutable.

Re: [RESOLU] Joueur tombe dans le vide dans la version build mais pas dans l'éditeur

Publié : 27 Jan 2020 14:51
par boubouk50
Pour rebondir, un objet static est un objet qui restera immuable. Un objet qui ne subira aucune transformation de quelque manière que ce soit. Cela permet de tout pré-enregistrer ce qui peut l'être et limiter des calculs continus.
Donc soit tu laisses ton objet statique, dans ce cas, il faut le configurer dans l'éditeur et ne plus y retoucher. Soit tu le décoches et ça devrait passer.
A noter, que tu peux définir certains attributs static ou non ->NavMesh, Lightmap, Occluder, etc pour les bloquer.

Re: [RESOLU] Joueur tombe dans le vide dans la version build mais pas dans l'éditeur

Publié : 28 Jan 2020 01:01
par calypsomen
Finalement le problème est toujours d'actualité en décochant tous les objets static de la scène, je ne comprend donc pas du tout, voici les logs du Player.log :
► Afficher le texte

Re: Joueur tombe dans le vide dans la version build mais pas dans l'éditeur

Publié : 28 Jan 2020 19:21
par Max
Bonsoir,

D'après ton log, les messages suivant devraient te mettre sur une piste je pense:
Couldn't create a Convex Mesh from source mesh "Body" within the maximum polygons limit (256). The partial hull will be used. Consider simplifying your mesh.
(Filename: Line: 95)

Couldn't create a Convex Mesh from source mesh "Collider" within the maximum polygons limit (256). The partial hull will be used. Consider simplifying your mesh.
(Filename: Line: 95)