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

Toutes les questions sur le développement Mobile, y compris la partie script.
lmo92
Messages : 35
Inscription : 09 Sep 2023 11:10

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

Message par lmo92 » 12 Oct 2023 15:00

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

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6225
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

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

Message par boubouk50 » 12 Oct 2023 15:44

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)
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

lmo92
Messages : 35
Inscription : 09 Sep 2023 11:10

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

Message par lmo92 » 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

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6225
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

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

Message par boubouk50 » 13 Oct 2023 12:29

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.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

lmo92
Messages : 35
Inscription : 09 Sep 2023 11:10

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

Message par lmo92 » 13 Oct 2023 13:28

OK merci,
J'avais compris que sibling etaient en fait lié a un canvas a chaque fois.
Merci :super:

Répondre

Revenir vers « Développement plateformes mobile Iphone et Android »