C# generation infinie terrain 2d RESOLU

Pour les scripts écrits en C#
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
construkid
Messages : 51
Inscription : 04 Juin 2015 17:57

C# generation infinie terrain 2d RESOLU

Message par construkid » 17 Août 2016 23:08

Bonjour !

Jai crée une fonction dans un script me permettant de faire apparaitre un morceau de terrain en 2d generé aléatoirement (en utilisabt des prefabs quand meme).

Mon probleme et que jai besoin dun element declencheur de cette fonction (en loccurence le personnage qui avance trop loin de la zone generėe) ainsi que de pouvoir desactiver les morceaux de niveau trop eloignés.

Alors en gros il me manque plus qua savoir comment lancer la fonction sur la bonne position pour faire apparaitre le morceaux de terrain ainsi que comment faire reaparaaitre et disparaitre les morceaux trop eloignés.

Jespere avoir ete clair et mercidavance !

Thibault.
Dernière édition par construkid le 18 Août 2016 13:53, édité 1 fois.

dan44180
Messages : 31
Inscription : 11 Août 2016 08:20
Contact :

Re: C# generation infinie terrain 2d

Message par dan44180 » 18 Août 2016 07:32

Je connais pas la 2D sous unity mais en
3D il y a le vector3.distance qui permet
De mesurer une distance entre deux objets
Si le terrain est plus loin que x unités il est
Détruit et un autre est instancié par exemple

megablast2
Messages : 152
Inscription : 15 Août 2013 16:47

Re: C# generation infinie terrain 2d

Message par megablast2 » 18 Août 2016 08:22

Juste une idée, mais tu n'a besoin de générer du terrain que dans la direction ou se déplace ton personnage donc ça te donne une direction x,y pour le créer. Tout ce qui est a l'opposé de cette direction et qui n'est plus visible est préposable a la suppression.Si le décors est composé de carré ça te donne aussi du coup des ligne et des colonnes et donc un maximum a droite et a gauche du personnage et idem pour le haut et la bas. Après pour unity, il y a peut être plus simple.

construkid
Messages : 51
Inscription : 04 Juin 2015 17:57

Re: C# generation infinie terrain 2d

Message par construkid » 18 Août 2016 11:00

@dan44180 merci pour la fonction je vais essayer.
@megablast enfait le jôueur peut se deplacer dans tout les sens en x et en y ducoup il me faut generer dans les deux sens et masquer egalement dans les deux sens en x.

EDIT : @dan44180 sa marche parfaitement par contre si je change juste le layer des sprites pour les cacher, ça améliorera les performances ou je dois les desactiver?

dan44180
Messages : 31
Inscription : 11 Août 2016 08:20
Contact :

Re: C# generation infinie terrain 2d

Message par dan44180 » 18 Août 2016 12:21

je ne connais pas du tout la 2D unity donc je ne sais pas mais tu peux peut etre desactiver les sprite avec un setactive(false);

Avatar de l’utilisateur
simonj
Messages : 293
Inscription : 29 Nov 2015 20:47
Localisation : Lyon

Re: C# generation infinie terrain 2d

Message par simonj » 18 Août 2016 12:44

Salut,

Si tu caches juste ton layer les objets existerons encore. Leur positions serons encore calculés et les boucles internes serons encore actives. Donc au niveau perf' c'est pas très bon. Je te conseil peut être plus de les désactiver.

Après si tu veux encore plus optimiser ton truc, tu peux te faire un pool d'objets si c'est de la génération procédurale assez simple avec pas trop d'éléments. Quand tu désactives ton objet parce que ton player est trop loin, tu met ton objet dans un espèce de tableau qui contient tous les éléments désactivés et quand tu dois régénérer un bout de terrain, tu vas piocher dans ces sprites pour voir si tu ne peux pas réutiliser des éléments.
Ca évite le gaspillage de ressources avec des Instantiate et des Destroy. Quitte à ce que tu te dise que tu ne peux avoir que X objets en même temps dans ta pool et si tu as atteins ton maximum d'objets stockés tu commences à remplacer comme dans une pile FIFO.

construkid
Messages : 51
Inscription : 04 Juin 2015 17:57

Re: C# generation infinie terrain 2d

Message par construkid » 18 Août 2016 13:13

Ok merci beaucoup je vais voir ce que je peux faire je vous tien au courant

EDIT: cest bon tout marche niquel merci a tous !

Répondre

Revenir vers « (C#) CSharp »