Page 1 sur 2

[RESOLU] Tremblement GUI après changement de version de Unity

Publié : 22 Fév 2019 10:58
par Teutch
Bonjour,

résumé de mes mésaventures...

J'ai commencé il y a fort longtemps un petit jeu de memo avec Unity 5.2.5 (si je ne m'abuse), j'étais limité à cette version parce que j'étais sous XP et que je n'avais pas la possibilité d'en changer.
Depuis peu, j'ai un nouveau PC sous W10, et du coup j'ai voulu mettre à jour Unity. J'ai testé mon projet sur différents ordis avant de complètement basculer. Le projet avait un problème sur un des ordis, mais comme il s'est avéré que l'ordi lui-même était instable, je ne me suis pas inquiété. J'ai donc progressivement/prudemment basculé mon projet.
Malheureusement, plusieurs semaines plus tard, le même problème observé sur l'ordi incriminé s'est manifesté sur mes autres ordis...

Le problème est donc le suivant. Les vignettes/cartes de l'interface du jeu oscillent de plus en plus verticalement tant qu'on reste sur l'interface. Ce sont des boutons GUI générés aléatoirement et disposés dans un canvas automatiquement. Je n'ai absolu rien changé dans cette partie. J'ai beau vérifié la partie du code qui génère ces cartes, je ne vois rien qui cloche, surtout que ça fonctionnait avant.
J'utilise des GUI ailleurs, interface de lancement, préférences... et il n'y a pas de problème.

Ça vous dit quelque chose ce truc ?


Merci ! :hello:

Re: Tremblement GUI après changement de version de Unity

Publié : 22 Fév 2019 11:07
par boubouk50
Salut,
ça "tremble" comment?
Sur un pixel? Ce pourrait être un problème de pixel ratio. Ton élément est positionné entre 2 pixels et du coup des fois il est dessiné sur celui du dessus, des fois celui du dessous.
Quel système d'UI utilises-tu?

Re: Tremblement GUI après changement de version de Unity

Publié : 22 Fév 2019 11:38
par Teutch
En fait ça oscille verticalement, au début c'est imperceptible, et rapidement s'est de plusieurs dizaines de pixels.

J'ai plusieurs Canvas, un pour le fond et le score (pas de problème), un pour les cartes (qui oscillent), et un autre pour une carte affichée en grand (pas de problème).

Je me demande si ça ne pourrait pas venir de "Grid Layout Group", mais je ne sais pas trop pourquoi...

Re: Tremblement GUI après changement de version de Unity

Publié : 22 Fév 2019 11:47
par boubouk50
C'est un comportement anormal pour Unity.
N'aurais-tu pas un script quelque part qui jouerait sur des tailles d'affichage, d'ancrage ou autre?

Re: Tremblement GUI après changement de version de Unity

Publié : 22 Fév 2019 12:00
par Teutch
Ben justement, je ne vois pas.

J'ai un script qui assigne aléatoirement des images à mes cartes qui sont par la suite placées dans le canvas et mis en forme avec le "Grid Layout group". J'ai également un script qui définit certain paramètres du "Grid Layout group" (padding, cellSize, spacing) selon le nombre de cartes (par rapport à la difficulté), les paramètres sont des entiers, je ne devrais pas avoir de problème...

Re: Tremblement GUI après changement de version de Unity

Publié : 22 Fév 2019 12:08
par boubouk50
Est-il possible d'avoir le code du script qui modifie les paramètres stp?
Entiers ou pas, si le code est dans un Update () et pas précis, ça pourrait venir de là.

Re: Tremblement GUI après changement de version de Unity

Publié : 22 Fév 2019 12:15
par Teutch
Oui, voilà !
J'ai oublié de préciser, je suis débutant (depuis des années :oops: )

Code : Tout sélectionner

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class RepartitionGrille : MonoBehaviour {

	public static byte niveauDifficulte ;

	GridLayoutGroup grille ;

	// Use this for initialization
	void Start () {
		Transform canvas = GameObject.Find("Canvas_jeu").transform;
		grille = canvas.GetComponent<GridLayoutGroup> ();

		switch (niveauDifficulte) {
		case 0 : 
			grille.padding.left = 34 ;
			grille.cellSize = new Vector2(200,200);
			grille.spacing = new Vector2(10,10);
			break ;
		case 1 : 
			grille.padding.left = 20 ;
			grille.cellSize = new Vector2(142,142);
			grille.spacing = new Vector2(8,8);
			break ;
		case 2 : 
			grille.padding.left = 10 ;
			grille.cellSize = new Vector2(113,113);
			grille.spacing = new Vector2(4,4);
			break ;
		}
	}

}

Re: Tremblement GUI après changement de version de Unity

Publié : 22 Fév 2019 12:55
par boubouk50
Ce ne doit pas être cela qui gêne. Les éléments sont dimensionnés uniquement au Start () et pas en cours de jeu.

Re: Tremblement GUI après changement de version de Unity

Publié : 22 Fév 2019 15:13
par Teutch
Bon, bon, bon !

Je vais poursuivre mes investigations, et probablement refaire cette partie là . :pleur4:

Merci tout de même ! :hello:

Re: Tremblement GUI après changement de version de Unity

Publié : 10 Août 2019 00:34
par Teutch
Me revoilà avec toujours le même problème.
(oui cinq mois après...)

En fait, je ne m'en sors pas.
Je ne sais pas si ça pourrait permettre à un éventuel sauveur de trouver, mais dans mes tests, j'ai remarqué que si je désactivais le "Pixel Perfect" du canvas mes vignettes tombent.

Je n'ai rien de physique pourtant dessus, je ne vois vraiment pas. Et si je mets une vignette manuellement dans le canvas, elle ne réagit pas comme les autres.


Merci !