[RESOLU] GameObjects changent de positions suivant la résolution

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Avatar de l’utilisateur
KassaK
Messages : 51
Inscription : 29 Sep 2014 14:27

[RESOLU] GameObjects changent de positions suivant la résolution

Message par KassaK » 27 Jan 2017 22:57

Hello !

Je reviens avec un problème un peu chelou, je pense que je n'ai pas bien capté un truc, et je n'ai malheureusement pas trouvé de réponses.

J'ai posté sur StackOverflow : http://stackoverflow.com/questions/4187 ... resolution, mais je vais vous la refaire en français :)

J'ai dans mon jeu un générateur de galaxie, voici un exemple de la fonction simplifiée :

Code : Tout sélectionner

                    // Choose a distance from the center of the galaxy.
                    float distance = Random.Range(5.0f, (float) galaxySize / 2 - 5);

                    // Choose an angle between 0 and 2 * PI.
                    float angle = Random.Range(0.0f, 100.0f) * 2 * Mathf.PI;

                    Vector3 position = new Vector3 (Mathf.Cos (angle) * distance, Mathf.Sin(angle) * distance, 9);

                    if (! Physics.CheckSphere(position, 1)) {
                        GameObject star = GameObject.CreatePrimitive(PrimitiveType.Sphere);
                        star.transform.parent = GameObject.Find ("Targets").transform;

                        // On change le scale en random
                        float randomScale = Random.Range (0f, 0.5f);
                        star.transform.localScale += new Vector3(randomScale,randomScale,randomScale);

                        star.transform.localPosition = position;
                        star.tag = "SolarSystem";
                }
            }
Je génère donc des gameobjects fils d'un autre qui s'appelle "Targets", que je place en x-y (étant en 2D, z ne change pas).
Ma caméra est en perspective, si ça a une importance.

J'ai également une autre fonction où j'ajoute des LineRender à ces GameObjects pour les relier entre eux, voici un exemple du rendu avec la résolution 1024/768 :

Image

Tout est donc nickel, maintenant voici le rendu si je change la résolution en 1920/1080 (et c'est le même délire si je change en free-aspect ou une autre résolution) :

Image

On peut voir que les LineRenderer restent à la bonne position suivant la résolution, mais tous mes GameObjects partent complètement en vrille, hors de ma caméra.

J'ai l'impression que le 0-0-0 de référence change pour ces GameObjects suivant la résolution...Et je n'ai aucune idée d'où ça vient.

Donc si quelqu'un à une idée :) Merci ! (Et si besoin que je vous donne plus d'infos, n'hésitez pas)

:!: Les balises code SVP :!:
Attention à la section où vous postez.
Merci de lire la Netiquette !
Dernière édition par KassaK le 28 Sep 2017 12:30, édité 1 fois.

Moi 1971
Messages : 727
Inscription : 29 Sep 2015 13:38

Re: GameObjects changent de positions suivant la résolution

Message par Moi 1971 » 28 Jan 2017 12:56

Bonjour,
Ton problème est sûrement lié à l'utilisation de la caméra en 3D avec un plan de galaxie en 2D et des positions avec Vector3 (donc 3D)
Si tu donneq un code simplifié, on ne peut faire qu'une explication simplifiée.
Par exemple : A quoi correspond la variable "galaxySize"?
Si toutes tes étoiles sont déplacées aux même endroits (enfin, suivant le même vecteur) et qu'elles sont toutes liées au même parent peut-être est-il judicieux de soupçonner se dit parent?....
Pour comprendre et trouver le problème, je réduirais la génération d'étoile à seulement 3 unités et je mettrais plein de Debug.Log(""); partout...

Avatar de l’utilisateur
KassaK
Messages : 51
Inscription : 29 Sep 2014 14:27

Re: GameObjects changent de positions suivant la résolution

Message par KassaK » 28 Jan 2017 13:50

En effet, c'était bien le parent qui me faisait planter tout ça, je ne sais pas trop pourquoi par contre :)

Merci pour la piste !

Avatar de l’utilisateur
Iwa
Messages : 1131
Inscription : 25 Avr 2012 16:20
Contact :

Re: GameObjects changent de positions suivant la résolution

Message par Iwa » 07 Fév 2017 11:24

Hello,

Si ton problème est Résolu, n'hésite pas à le notifier en éditant ton premier message avec [RESOLU] au devant du titre.

En vous remerciant ;)
"N'est stupide que la stupidité Monsieur..." - Forest Gump
... sauf si tu lis pas ça :)

Si tu as tout ce qu'il te faut, merci de penser à basculer ton sujet en [RESOLU] en éditant ton tout premier post ;)

Répondre

Revenir vers « Scripting »