Problème de position dans un canvas unity
Publié : 19 Oct 2021 21:25
Bonjour,
Je suis face à un problème et je ne trouve aucune solution ou info sur internet. Je viens donc demander votre aide ici :
Je débute sur Unity et je suis entrain de créer un jeu en 2d. Je me suis rendu compte que pour que l'écran s'adapte à la taille de la fenêtre, il fallait utiliser un canvas. J'ai donc mis tout mes éléments dans le canvas, sauf que certains gameObject, que j'appelle "spawners" dans mon projet sont censé faire apparaitre les obstacles et autres éléments, et fonctionnait bien jusqu'à ce que je mette le canvas.
Depuis, quand un spawner fait apparaitre un objet (qui est son enfant) (depuis un préfab) à une position 0, 0 par exemple, l'objet ne se trouve pas à la position du spawner mais à celle du centre de la scène (alors que si j'inscrit manuellement 0, 0 dans l'inspector de l'objet, il va bien à la position du spawner).
Je ne comprend donc pas comment faire pour faire apparaitre mon objet au bon endoit car premièrement, la position 0, 0 à laquelle va l'objet est celle de la scène et ne prend donc pas en compte le canvas (l'objet ne s'adapte donc pas à la fenêtre) et deuxièmement, dans l'inspector, la position 0, 0 de l'objet correspond à celle du spawner (ce qui me parait logique) mais je souhaiterais lui assigner une autre position 0, 0 (dans le canvas) car les différents spawners présent dans mon jeu ne sont pas tous au même endroits (donc pas la même position 0, 0).
En clair je souhaiterais pouvoir modifier la position 0, 0 de l'objet pour que cette position soit la même selon tout les objets (n'ayant pas les même spawners aux mêmes positions) et que cette position 0, 0 soit dans le canvas pour qu elle s'adapte à l'écran.
Faut-il que je détache les objets de leur parent (qui sont leurs spawners attitrés) pour pouvoir le faire ?
je joins une image globale de la scène pour être plus clair :
(les spawners dans la scène sont en haut derrière le texte)
Si vous avez besoin d'autres info pour mieux comprendre, demandez les moi (je ne sais pas si je suis très clair dans mon explication )
Merci beaucoup de vos réponses
Je suis face à un problème et je ne trouve aucune solution ou info sur internet. Je viens donc demander votre aide ici :
Je débute sur Unity et je suis entrain de créer un jeu en 2d. Je me suis rendu compte que pour que l'écran s'adapte à la taille de la fenêtre, il fallait utiliser un canvas. J'ai donc mis tout mes éléments dans le canvas, sauf que certains gameObject, que j'appelle "spawners" dans mon projet sont censé faire apparaitre les obstacles et autres éléments, et fonctionnait bien jusqu'à ce que je mette le canvas.
Depuis, quand un spawner fait apparaitre un objet (qui est son enfant) (depuis un préfab) à une position 0, 0 par exemple, l'objet ne se trouve pas à la position du spawner mais à celle du centre de la scène (alors que si j'inscrit manuellement 0, 0 dans l'inspector de l'objet, il va bien à la position du spawner).
Je ne comprend donc pas comment faire pour faire apparaitre mon objet au bon endoit car premièrement, la position 0, 0 à laquelle va l'objet est celle de la scène et ne prend donc pas en compte le canvas (l'objet ne s'adapte donc pas à la fenêtre) et deuxièmement, dans l'inspector, la position 0, 0 de l'objet correspond à celle du spawner (ce qui me parait logique) mais je souhaiterais lui assigner une autre position 0, 0 (dans le canvas) car les différents spawners présent dans mon jeu ne sont pas tous au même endroits (donc pas la même position 0, 0).
En clair je souhaiterais pouvoir modifier la position 0, 0 de l'objet pour que cette position soit la même selon tout les objets (n'ayant pas les même spawners aux mêmes positions) et que cette position 0, 0 soit dans le canvas pour qu elle s'adapte à l'écran.
Faut-il que je détache les objets de leur parent (qui sont leurs spawners attitrés) pour pouvoir le faire ?
je joins une image globale de la scène pour être plus clair :
(les spawners dans la scène sont en haut derrière le texte)
Si vous avez besoin d'autres info pour mieux comprendre, demandez les moi (je ne sais pas si je suis très clair dans mon explication )
Merci beaucoup de vos réponses