Page 1 sur 1

Gestion objets devant /derriere - Instanciation a la volée - Sauvergarde des infos de pleins d objets

Publié : 12 Oct 2023 15:00
par lmo92
Bonjour,
Pour deja donner un peu de contexte :
Je suis en train de créer un "powerpoint light", faisant partie d'un projet plus grand, et ce sur mobile.
J'ai defini pour la v1, 3 types d'objets :
- image
- texte
- Forme
Chaque objet possede les caracteristiques generales suivantes :
- Une position ( X, Y )
- un Angle de rotation
- une echelle ( Scale )

Apres avoir pas mal lu et regardé de tuto, je compte procéder de la maniere suivante ( je melange coté UI et back ) :
0 - Je change de scene -> nouvelle fenetre vierge - Creation d'un canvas vide
1- l'utilisateur choisi son type d objet ( par ex : image ) en clicquant sur un bouton d'un panel outil
2 - un file browser s'ouvre et il peut selectionner son image
3 - Instanciation ( spawning ) d'un nouvel objet , positionné au centre de l ecran ( 0,0 par ex ) , scale 1, orientation 0. , lié au canvas vide créé en 0.
4 -Objet est toujours selectionné, il y a des carrés pour l'agrandir/retrecir et une "flche tournante" pour la rotation. Un appui long le selectionne et le deplace.

Mes questions :
- Comment gerer la gestion des objets devant : derriere?est ce que je créé un canvas pour chaque objet ? je rearrange les canvas apres, mais c'est lourd non ?
- Quelle est la meilleure maniere de sauvegarder donc "une slide", avec tous ses objets ? un fichier JSON avec toutes les infos ? Autre ?
- lié a la question precédente, pour sauver une forme ( un rect par ex ), il faut que je sauve TOUTES les infos ? ( ca en fait pas mal en fait pour juste un rectangle )
- Cette gestion de "formes" me semble complexe, est ce que la remplacer par juste des images de forme avec un fond transparent ne serait pas plus simple ? est ce qu il y a des caveats que je ne vois pas ?

Merci pour vos conseils

Re: Gestion objets devant /derriere - Instanciation a la volée - Sauvergarde des infos de pleins d objets

Publié : 12 Oct 2023 15:44
par boubouk50
Devant/derrière, c'est une question de hiérarchie dans canvas. Le plus haut est derrière, le plus bas devant. Ainsi, en ajustant la position d'un gameObject en hiérarchie, tu gères la position devant, derrière.
Il te faut regarder du côté des "sibling" d'un transform.
SetAsFirdstSibling -> Derrière
SetAsLastSibling -> Devant
SetSiblingIndex -> donner la position
SetSiblingIndex -> récupérer la position

json, c'est pratique, hiérarchique et bien ficelé. Tu as aussi csv (simpliste) ou xml (lisible). Mais au final, ça reste de la lecture de texte. C'est plutôt à toi de voir, je dirai.

Un rectangle peut être défini par seulement 4 données : la coordonnée min (xmin , ymin) et coordonnée max (xmax, ymax)
Ou encore par la coordonnée min, sa largeur et sa hauteur.
Ou encore par le centre, sa largeur et sa hauteur.
En fait, à partir d'une coordonnée et de la largeur et hauteur, tu peux recalculer chaque point du rectangle, donc toutes les données de ton rect. Il faut tout de même prédéfinir la façon dont il est configuré en UI (ancres)

Une forme en texture ça fonctionne. Tu peux lui ajouter le component contour pour avoir un contour a taille fixe (sinon le contour se scale avec la texture)

Re: Gestion objets devant /derriere - Instanciation a la volée - Sauvergarde des infos de pleins d objets

Publié : 13 Oct 2023 12:24
par lmo92
Ok, merci , donc je comprends que je peux creer autant de canvas que je veux, ca me va bien ....
Je pense que je vais partir sur JSON ou finalement peut etre une base de données ( SQLite )

Pour le dernier point avec la forme, il faut que je fasse des tests. pcq il n'aura pas que des rectangles .. cercle, rectangles mais avec bords ronds , fleches , triangles...bref..
Merci beaucoup comme toujours pour tes conseils et informations

Re: Gestion objets devant /derriere - Instanciation a la volée - Sauvergarde des infos de pleins d objets

Publié : 13 Oct 2023 12:29
par boubouk50
lmo92 a écrit :
13 Oct 2023 12:24
Ok, merci , donc je comprends que je peux creer autant de canvas que je veux, ca me va bien ....
Je pense que je vais partir sur JSON ou finalement peut etre une base de données ( SQLite )

Pour le dernier point avec la forme, il faut que je fasse des tests. pcq il n'aura pas que des rectangles .. cercle, rectangles mais avec bords ronds , fleches , triangles...bref..
Merci beaucoup comme toujours pour tes conseils et informations
Non justement. Tu peux ajouter autant d'éléments que tu veux à un même canvas et les trier en fonction de leur hiérarchie. C'est la bonne solution.
Les Canvas sont gourmands en performance, tu pourrais en avoir un nombre conséquent quand même, mais il vaut mieux éviter de les multiplier, ce n'est pas une bonne pratique du tout.
Si tu as besoin d'identifier chaque enfant, utilise un component spécifique ou bien le GUID du gameObject.
Pour les formes, il te faudra autant de paramètre qu'Unity en propose/demande.

Re: Gestion objets devant /derriere - Instanciation a la volée - Sauvergarde des infos de pleins d objets

Publié : 13 Oct 2023 13:28
par lmo92
OK merci,
J'avais compris que sibling etaient en fait lié a un canvas a chaque fois.
Merci :super: