[DB-AL] Tableau avec tri de données dans Unity3D
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
[DB-AL] Tableau avec tri de données dans Unity3D
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%.
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
Salut !
Je ne comprends pas bien pourquoi tu as besoin de détruire le tableau... Pourrait-on voir ton code stp ?
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
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.
Actuellement, mes données sont affichées comme ceci (Affichage moche et temporaire de tests ^^) :
Et je souhaiterais pouvoir tirer mes données en temps réel depuis les entêtes ci-dessous :
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.
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.
Actuellement, mes données sont affichées comme ceci (Affichage moche et temporaire de tests ^^) :
Et je souhaiterais pouvoir tirer mes données en temps réel depuis les entêtes ci-dessous :
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
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
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 ^^
Dernière édition par notoxy le 08 Jan 2019 11:23, édité 3 fois.
Re: [DB-AL] Tableau avec tri de données dans Unity3D
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)
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)
Re: [DB-AL] Tableau avec tri de données dans Unity3D
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.
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
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
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
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
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
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 ^^
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 ^^