Création d'un maillage pour programatically un jeu en 2D à base de tuiles - Réponses Unity

actuellement je crée un maillage tilebased programatically. L'utilisateur peut modifier les tuiles (ou lieu de les détruire) dans le jeu. Les tuiles sont toutes les cases, donc je peux réutiliser les sommets du côté droit d'une tuile pour le côté gauche de la suivante. De cette façon, je peux réduire les sommets du maillage à 1/4. Mais maintenant, je fais face à un problème avec ce tout en appliquant une texture au maillage:







La texture est un spritemap, de sorte que les Ubs déterminent quels l'image-objet la tuile aura. Il fonctionne très bien pour les tuiles simples mais conduit à un problème lorsque certains sommets sont réutilisés. Par exemple, un Vertice appartient à la tuile 1 le coin inférieur droit et la tuile 2 comme le coin inférieur gauche. La texture ne contient qu'un seul sprite pour cet exemple. Maintenant, les deux tuiles différentes auraient besoin uv coordonnées pour la même Vertice (tuile 1 aurait besoin (1, 0) et la tuile 2 (0, 0).







En ce moment, je pense qu'il est impossible de réutiliser les sommets mais ont des Ubs. Donc, il y a deux options disponibles:

a) Ne pas réutiliser les sommets. Cela conduirait à quatre fois plus de sommets dans le maillage. Je suis arrivé jusqu'à 5000 tuiles sur l'écran, donc 20.000 sommets et Ubs besoin d'être sauvés. Je ne sais pas à quel point cela affecte l'utilisation des performances / ram.

b) Ne pas utiliser spritemap mais construire une texture à la place. Avec cette approche, je voudrais créer une texture pour chaque morceau et de la peinture avec les pixels de la spritemap. Avec 5000 tuiles je seulement besoin d'environ 1250 sommets / UVs (ok, un peu plus parce que les sommets ne sont actuellement pas partagé entre morceaux) mais je devais repeindre la texture à chaque fois que l'utilisateur change la carte. Il serait « seulement » affecter le morceau édité réelle et ses voisins directs. Encore une fois, je ne sais pas comment l'impact sur l'utilisation des performances / RAM est.







Articles Liés