Page 1 sur 2

[DB - AL] Transition de couleurs qui ne marche pas

Publié : 21 Jan 2020 22:37
par vertigo13
Bonjour,

j'ai récupéré un script sur le net pour faire changer la couleur d'un objet progressivement, mais je n'arrive pas à le faire marcher, il ne se passe rien. Voici le lien: https://www.youtube.com/watch?v=oNz4I0RfsEg
Le tuto est fait pour faire une transition de couleurs sur des sprites 2d, j'ai dû l'adapter pour mon cube.
Je précise que je ne sais pas me servir des coroutines mais le tuto semble plutôt clair.

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class blueRampReact : MonoBehaviour {

	void Start () 
	{	
		Color c = GetComponent<Renderer> ().material.color;
		c.a = 0f;
		GetComponent<Renderer> ().material.color = c;
	}

	void update()
	{
		if (Input.GetKey (KeyCode.Q)) 
		{
			StartFading ();
		}
	}

	IEnumerator FadeIn() 
	{
		for (float f = 0.05f; f <= 1; f += 0.05f) 
		{
			Color c = GetComponent<Renderer> ().material.color;
			c.a = f;
			GetComponent<Renderer> ().material.color = c;
			yield return new WaitForSeconds(0.05f);
		}
	}

	void StartFading()
	{
		StartCoroutine ("FadeIn");
	}
}
Si quelqu'un peut me dépanner... Merci d'avance.

Re: [DB - AL] Transition de couleurs qui ne marche pas

Publié : 21 Jan 2020 23:02
par djulio74
J'ai pas tout regardé en détail, et sans tester difficile à dire, mais à première vu tu ne modifie que le composant alpha ( c. a) de la couleur dans ton script. Un couleur c'est rgba, essaye avec c.r à la place, qui devrai faire varier le rouge.

Re: [DB - AL] Transition de couleurs qui ne marche pas

Publié : 22 Jan 2020 08:07
par Aelhan
Bonjour,

Je ne suis pas sûr de mon coup, mais dans ta boucle for tu as f<=1 ce ne serait pas plutôt f=1 qu'il faudrait ?

Re: [DB - AL] Transition de couleurs qui ne marche pas

Publié : 22 Jan 2020 08:36
par djulio74
Aelhan a écrit :
22 Jan 2020 08:07
Bonjour,

Je ne suis pas sûr de mon coup, mais dans ta boucle for tu as f<=1 ce ne serait pas plutôt f=1 qu'il faudrait ?
non, c'est bien ça, pour chaque itération, de f = 0.05, tant que f <= 1 tu ajoute 0.05.

Re: [DB - AL] Transition de couleurs qui ne marche pas

Publié : 22 Jan 2020 09:24
par boubouk50
Je rejoins Djulio,
Ce script est un FadeIn pas une transition, il est fait pour faire apparaître un objet. Il va agir sur l'alpha de la couleur diffuse (mainColor). Il faut donc l'appliquer sur un objet qui possède un matériau transparent (et pas cutout).
De base, le matériau est transparent, puis à l'appui de la touche Q, il devient opaque petit à petit en une seconde.
Il est à usage unique.
Si tu veux un autre comportement, il va falloir le modifier.

Re: [DB - AL] Transition de couleurs qui ne marche pas

Publié : 22 Jan 2020 14:02
par Aelhan
djulio74 a écrit :
22 Jan 2020 08:36
non, c'est bien ça, pour chaque itération, de f = 0.05, tant que f <= 1 tu ajoute 0.05.
Hum, oui au temps pour moi petite confusion de ma part avec sans doute un langage plus ancien :/ prochain coup je vérifie avant de poster plutôt que l'inverse ;)

Re: [DB - AL] Transition de couleurs qui ne marche pas

Publié : 22 Jan 2020 14:46
par boubouk50
Pas possible, f=1 est une affectation.
f==1 est une comparaison, c'est surement à cela que tu penses. Mais ça ne change rien, il vaut même mieux laisser la comparaison inférieure pour être sur de couper la boucle, car une comparaison de float peut ne jamais être résolue.

Re: [DB - AL] Transition de couleurs qui ne marche pas

Publié : 22 Jan 2020 22:42
par vertigo13
Merci pour ces réponses.

Faire un fade sur l'alpha ça m'intéresse aussi! Mais même comme ça le script ne donne rien. Quand je le passe en transparent, il reste comme ça.

Du coup je me demande si j'ai bien compris le genre de tranparence en question: est ce qu'on parle du rendering mode, avec les 4 options opaque / cutout / fade et tranparent ?

Boubouk50, quand tu dis que le script est à usage unique, tu veux dire qu'on ne peut l'appliquer qu'à un seul objet à la fois?

Merci

Re: [DB - AL] Transition de couleurs qui ne marche pas

Publié : 22 Jan 2020 22:52
par Max
Bonsoir,

Pour que ton script soit vraiment fonctionnel pour le tester, remplace void update() par void Update()

[RESOLU] Transition de couleurs qui ne marche pas

Publié : 22 Jan 2020 23:18
par vertigo13
Merci Max, ça marche grâce à un petit U!

Du coup je peux aussi modifier la couleur, merci pour vous réponses.