Page 1 sur 1

[DB-AL] Tableau avec tri de données dans Unity3D

Publié : 29 Déc 2018 04:35
par notoxy
Bonjour à tous,

Je travail actuellement sur un petit jeu 2D, type RPG, de gestion de héros. Un de mes module n'avance pas et je souhaiterais obtenir de votre aide à ce sujet :

- J'ai une assez grande quantité de données à lister et afficher dans des tableaux, dans Unity (Héros, Items, Quêtes, Scores, Succès, etc).
- Mon système actuel, récupère les données depuis un fichier BDD SQLite, les stock dans une List<T> et les affiche par instanciation de préfab dans un GridLayout. Au final, cela me crée un tableau statique, avec plusieurs données sous forme de lignes.
- J'effectue un trie des données à volonté/direct dans Unity (Bouton), depuis la fonction List.Sort(); et List.Revert(); en détruisant et recréant le tableau avec les nouveaux paramètres retournés ( -1 ou 1 ).

=> C'est fonctionnel mais très moche. Et je pense, très mal conçu / optimisé.

-
A terme, mon objectif est de créer dans Unity3D, le même tableau d'items que le site "WowHead".
Qui liste les Items dans un tableau sous plusieurs pages (Si besoin) et permet le tri visuel depuis les entêtes du tableau (Alphabétique pour le Nom, Croissant/Décroissant pour les valeurs numériques, etc).
-

Je souhaiterais connaitre vos avis à ce sujet. Mon système doit sans-doute être repensé / modifié.
N'hésitez pas à me faire part de vos lumières et idées, ou tout autre élément me permettant d'étudier de nouvelles pistes et fonctions au quelles je n'aurais pas pensé. (En ce moment je planche sur DataTable et le .Sort = "occr desc";)

Merci à tous !
Respectueusement,
Notoxy

PS : A titre d'information, je me suis basé sur le Tutoriel de inScope Studios - Unity tutorial: High score with SQLite sur Youtube et je l'ai adapté à mes besoins. Une bonne partie du Code de ce module viens de ce tutoriel, il n'est donc pas de moi à 100%.

Re: [DB-AL] Tableau avec tri de données dans Unity3D

Publié : 30 Déc 2018 13:35
par Alesk
Salut !

Je ne comprends pas bien pourquoi tu as besoin de détruire le tableau... Pourrait-on voir ton code stp ?

Re: [DB-AL] Tableau avec tri de données dans Unity3D

Publié : 02 Jan 2019 23:22
par notoxy
Bonjour,

Merci pour ta réponse :)
Désolé pour le de temps de retours, je ne suis pas chez moi actuellement ^^
Je détruit l'actuel pour créer le trié. Je n'ai pas trouvé de solution pour trier en live (Actualiser l'affichage) ou depuis les enfants.

Contenu caché
Vous devez être inscrit et connecté sur ce forum pour voir le contenu caché.



Contenu caché
Vous devez être inscrit et connecté sur ce forum pour voir le contenu caché.


Actuellement, mes données sont affichées comme ceci (Affichage moche et temporaire de tests ^^) :

Image

Et je souhaiterais pouvoir tirer mes données en temps réel depuis les entêtes ci-dessous :

Image

J'arrive à trier mes données numériques (Pas encore les string). Il ne me manque que de trouver une solution pour actualiser et ranger les éléments visuellement. J'ai trouvé la fonction "SetSiblingIndex"', mais je n'ai pas encore réussi à l'adapter à mon système.

Merci d'avance,
Respectueusement,
Notoxy.

Re: [DB-AL] Tableau avec tri de données dans Unity3D

Publié : 03 Jan 2019 22:34
par Alesk
Alors, il me manque une précision : de quel tableau parles-tu concernant la destruction ? la liste de données dans le code ou bien le tableau affiché à l'écran ?

Re: [DB-AL] Tableau avec tri de données dans Unity3D

Publié : 08 Jan 2019 03:22
par notoxy
Alesk a écrit :
03 Jan 2019 22:34
Alors, il me manque une précision : de quel tableau parles-tu concernant la destruction ? la liste de données dans le code ou bien le tableau affiché à l'écran ?

En résumé, j'essaye de trier les données (a>z et z>a) et de les actualiser sur l'écran ^^
- J’effectue le tri, puis pour mette à jour les données, n'ayant pas trouvé de moyen pour "actualiser" l'affichage, je détruis les prefabs enfant triés/affichés en a>z de ma liste et je affiche les nouveaux triés en z>a ^^

Re: [DB-AL] Tableau avec tri de données dans Unity3D

Publié : 08 Jan 2019 04:22
par notoxy
Désolé du doublon, j'ai pas pensé à éditer mon message du dessus :/

Mon systeme est bancale, mais l'objectif final est de recréer ceci sous Unity (wowhead/items) :
(L'objectif est de rendre le système fonctionnel, je peux me lancer sur une autre piste/code si quelqu'un à une idée)
Image

Re: [DB-AL] Tableau avec tri de données dans Unity3D

Publié : 08 Jan 2019 12:00
par Alesk
Alors... Idéalement il faut toujours décorréler les données et leur affichage, c'est plus flexible.

Dans ton cas, tu n'as pas besoin de détruire les instances de prefabs, juste mettre à jour leur contenu.
Il faut que tu créés ton panneau d'affichage avec des prefabs vides/non renseignés, et ensuite les mettre à jour avec tes données triées.

Ainsi tu n'as jamais besoin de les détruire, tu mets juste à jour ce qu'ils affichent.

Et bien sûr, si d'un affichage à l'autre, tu as des prefabs en trop car la nouvelle liste que tu veux afficher est plus courte que la précédente, il suffit de masquer les prefabs en trop, sans les détruire, car il pourront être réutilisés plus tard.
Et si jamais la nouvelle liste à afficher est plus longue, tu as juste à créer quelques instances supplémentaires de ton prefab pour allonger la liste.

Re: [DB-AL] Tableau avec tri de données dans Unity3D

Publié : 10 Jan 2019 01:12
par notoxy
Merci, bonne idée !

Si j'ai bien compris, je peux créer par exemple une liste de 25 Prefabs manuellement (Y'a t'il une limite de Prefab maximum que unity peux gérer dans un même parent ? Car mes objets seront générés procéduralement et je risque d'en avoir pas mal a afficher.).
Par la suite, au lieux d'instancier des Prefab, je fait une boucle qui change les valeurs de chaque enfants (Nom, Puissance, etc) ?
Si j'ai besoin de plusieurs pages (trop de lignes), je peux afficher des tranches de 25 lignes par pages.

Là, je pensais faire un tri directement depuis les enfants (SetSiblingIndex) en fonction de leurs valeurs.
Il vaut mieux réécrire les données à chaque tri ou modifier l'ordre des enfants ?

Encore merci d'avance :)

Re: [DB-AL] Tableau avec tri de données dans Unity3D

Publié : 10 Jan 2019 09:20
par Alesk
Yo !

Il la limite du nombre de prefabs est la quantité de mémoire dont tu disposes... donc ça veut dire beaucoup beaucoup beaucoup ;)

Pour ce qui est du tri, si tes résultats s'étalent sur plusieurs pages, il vaut mieux mettre à jour les données dans les prefabs affichés (car en fonction de ce sur quoi tu tries, des éléments d'autres pages pourraient apparaître dans la page courante).
S'il n'y a qu'une seule page, une réorganisation des enfants suffit.

Mais bon, autant ne garder qu'une seule méthode, c'est plus simple ;)

Re: [DB-AL] Tableau avec tri de données dans Unity3D

Publié : 10 Jan 2019 17:16
par notoxy
Re !

Dac, c'est noté. Je vais bricoler quelques trucs de mon côté.
Encore merci pour les infos, je repasserais dès que j'ai trouvé une solution afin de noter le sujet en résolue ^^