[Résolu] Des couleurs qui changent toute seules
-
- Messages : 33
- Inscription : 03 Avr 2019 15:09
- Localisation : Liège (B)
- Contact :
[Résolu] Des couleurs qui changent toute seules
Bonjour,
Via script, j’applique une couleur au composant Image d’un Panel UI.
Cette couleur dans le script à la valeur RGBA : 190/90/0/255
En mode Play, cette valeur s’est miraculeusement transformée en 191/91/0/255 (Valeur lue dans la fenêtre d’édition de l’Inspector). Jusque là ce n'est pas trop gênant.
Plus bizarre encore, la couleur réellement affichée dans le champs de l’Inspector et utilisée dans la fenêtre Game correspond approximativement à 255/255/11/255.
J’ai également testé dans le script la valeur RVBA 240/15/15/255.
La valeur de l’éditeur est 191/12/12/255 et la couleur réelle affichée est totalement blanche.
Est-ce quelqu'un à déjà rencontré cette bizarrerie ?
Une idée pour résoudre ce problème ?
Via script, j’applique une couleur au composant Image d’un Panel UI.
Cette couleur dans le script à la valeur RGBA : 190/90/0/255
En mode Play, cette valeur s’est miraculeusement transformée en 191/91/0/255 (Valeur lue dans la fenêtre d’édition de l’Inspector). Jusque là ce n'est pas trop gênant.
Plus bizarre encore, la couleur réellement affichée dans le champs de l’Inspector et utilisée dans la fenêtre Game correspond approximativement à 255/255/11/255.
J’ai également testé dans le script la valeur RVBA 240/15/15/255.
La valeur de l’éditeur est 191/12/12/255 et la couleur réelle affichée est totalement blanche.
Est-ce quelqu'un à déjà rencontré cette bizarrerie ?
Une idée pour résoudre ce problème ?
Dernière édition par JollyStone le 13 Jan 2020 11:17, édité 1 fois.
Re: Des couleurs qui changent toute seules
Bonjour,
Déjà, comment procèdes-tu dans ton script pour changer la couleur de l'image.
une histoire d'arrondi je suppose, rien de bien gênant visuellementJollyStone a écrit : ↑12 Jan 2020 16:11Cette couleur dans le script à la valeur RGBA : 190/90/0/255
En mode Play, cette valeur s’est miraculeusement transformée en 191/91/0/255 (Valeur lue dans la fenêtre d’édition de l’Inspector). Jusque là ce n'est pas trop gênant.
ça il n'y a pas de miracle. Si cela change, c'est que c'est commandé quelque part. Reste à trouver où.JollyStone a écrit : ↑12 Jan 2020 16:11Plus bizarre encore, la couleur réellement affichée dans le champs de l’Inspector et utilisée dans la fenêtre Game correspond approximativement à 255/255/11/255.
Déjà, comment procèdes-tu dans ton script pour changer la couleur de l'image.
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
-
- Messages : 33
- Inscription : 03 Avr 2019 15:09
- Localisation : Liège (B)
- Contact :
Re: Des couleurs qui changent toute seules
Salut Max,
Ah ! Il y a des arrondis pour des entiers (int) ?
Les valeur RGBA sont contenue dans un fichier JSON et lues depuis un script.
Ensuite appliquée à l’objet.
J’espère que ces informations suffisent, sinon je posterai l’entièreté des scripts.
Ah ! Il y a des arrondis pour des entiers (int) ?
Les valeur RGBA sont contenue dans un fichier JSON et lues depuis un script.
Code : Tout sélectionner
private void LoadGameData ()
{
string filePath = Path.Combine (Application.streamingAssetsPath, gameDataFileName);
if (File.Exists (filePath)) {
string dataAsJson = File.ReadAllText (filePath);
GameData loadedData = JsonUtility.FromJson<GameData> (dataAsJson);
allRoundData = loadedData.allRoundData;
} else {
Debug.LogError ("Impossible de charger les données");
}
}
Code : Tout sélectionner
public Color categoryColor;
public Image backgroundImage;
…
categoryColor = new Vector4 (currentRoundData.r, currentRoundData.g, currentRoundData.b, currentRoundData.a);
backgroundImage = GameObject.Find ("BackgroundPanel").GetComponent<Image> ();
backgroundImage.color = categoryColor;
Re: Des couleurs qui changent toute seules
Les composant RGBA sont généralement passés par des floats compris entre 0 et 1.0f. Voir par exemple la doc sur Color.
Après, je ne vois pas trop le lien entre tes deux scripts.
Le second, qui se charge de changer la couleur de backgroundImage le fait à partir de d'une variable publique.
backgroundImage semble récupéré par un Find. Mais pour categoryColor comment est-elle affecté. Par le biais de l'inspector, ou suite au chargement des données (script 1) ?
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
-
- Messages : 33
- Inscription : 03 Avr 2019 15:09
- Localisation : Liège (B)
- Contact :
Re: Des couleurs qui changent toute seules
En effet, ça semble un peu tordu comme méthode.
il s’agit au départ du Quizz (tuto Unity : https://learn.unity.com/tutorial/live-s ... 002053b652) que je tente d’améliorer.
Donc, je crée 6 catégories de questions. Chaque catégorie a sa propre couleur, déterminée dans le fichier JSON.
Le premier script charge les données du fichier JSON (les questions, et notamment la couleur de la catégorie).
Le second script construit la couleur selon les données du JSON, récupère l’objet backgroundImage et lui applique la couleur.
[Édit]
Étrangement, ce problème survient pour deux des 6 catégories. Les 4 autres fonctionnes parfaitement.
Quelque soit la catégorie sélectionnée, le reste est construit de la même manière.
il s’agit au départ du Quizz (tuto Unity : https://learn.unity.com/tutorial/live-s ... 002053b652) que je tente d’améliorer.
Donc, je crée 6 catégories de questions. Chaque catégorie a sa propre couleur, déterminée dans le fichier JSON.
Le premier script charge les données du fichier JSON (les questions, et notamment la couleur de la catégorie).
Le second script construit la couleur selon les données du JSON, récupère l’objet backgroundImage et lui applique la couleur.
[Édit]
Étrangement, ce problème survient pour deux des 6 catégories. Les 4 autres fonctionnes parfaitement.
Quelque soit la catégorie sélectionnée, le reste est construit de la même manière.
Re: Des couleurs qui changent toute seules
As tu vérifié à coup de Debug.Log si les valeurs récupées et qui sont affecté à backgroundImage sont bonnes et cohérentes ?JollyStone a écrit : ↑12 Jan 2020 17:32Le second script construit la couleur selon les données du JSON, récupère l’objet backgroundImage et lui applique la couleur.
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
-
- Messages : 33
- Inscription : 03 Avr 2019 15:09
- Localisation : Liège (B)
- Contact :
Re: Des couleurs qui changent toute seules
Oui, bien sûr.
Les valeurs affichées dans la console sont bien égales aux valeurs du fichier JSON.
Je peux te fournir tous les scripts. Est-ce seulement possible par message personnel ?
Les valeurs affichées dans la console sont bien égales aux valeurs du fichier JSON.
Je peux te fournir tous les scripts. Est-ce seulement possible par message personnel ?
Re: Des couleurs qui changent toute seules
Le mieux c'est souvent un package, avec une scène de test reproduisant le soucis. Au moins, tu as tous les éléments pouvant interférer, script comme GameObjects et leurs componants.
Et oui, si tu préfères, par MP il n'y a pas de soucis.
Et oui, si tu préfères, par MP il n'y a pas de soucis.
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
Re: Des couleurs qui changent toute seules
Ok, en regardant tes scripts, les données de couleur récupérées sont en fait dans ce
format:
Le soucis (et cela rejoint un peu ce que je disais plus haut), c'est que quand tu fais
un
Ce que tu peux faire, c'est (pour reprendre la syntaxe utilisée dans ton script) écrire:
format:
public int r, g, b, a;
.Le soucis (et cela rejoint un peu ce que je disais plus haut), c'est que quand tu fais
un
backgroundImage.color = categoryColor;
, categoryColor étant un Color, il attend théoriquement 4 float (de valeurs comprises entre 0 à 1.0f). Pas d'int (dont les valeurs seraient de 0 à 255).Ce que tu peux faire, c'est (pour reprendre la syntaxe utilisée dans ton script) écrire:
Code : Tout sélectionner
categoryColor = new Vector4 (currentRoundData.r/255.0f, currentRoundData.g/255.0f, currentRoundData.b/255.0f, currentRoundData.a/255.0f);
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
-
- Messages : 33
- Inscription : 03 Avr 2019 15:09
- Localisation : Liège (B)
- Contact :
Re: Des couleurs qui changent toute seules
Ah oui ! C'est subtile.
Je trouve ça un peu tordu pour un débutant.
J'avais commencé avec des floats puis suis passé en int car le problème était déjà présent.
Un tout grand merci pour ton aide Max, ça fonctionne parfaitement maintenant pour toutes les catégories.
Bonne journée !
Je trouve ça un peu tordu pour un débutant.
J'avais commencé avec des floats puis suis passé en int car le problème était déjà présent.
Un tout grand merci pour ton aide Max, ça fonctionne parfaitement maintenant pour toutes les catégories.
Bonne journée !