Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
We use cookies to ensure that we provide you with the best possible experience on our site.
Votre source incontournable sur Unity et le développement web
Votre source incontournable sur Unity et le développement web
Dans le monde d’Unity, une des structures les plus cruciales pour la gestion des couleurs est « Color », accompagnée de sa variante en 32 bits, « Color32 ».
Ces structures vous offrent la flexibilité de définir une vaste gamme de couleurs et de les associer à divers composants de votre projet, voir notre article sur Unity Comment changer la couleur d’un objet
Sommaire
La différence essentielle entre « Color » et « Color32 » réside dans la plage de valeurs qu’elles utilisent. « Color » utilise des valeurs normalisées comprises entre 0 et 1, tandis que « Color32 » opère sur une plage de 0 à 255.
La compréhension de cette différence est essentielle pour une utilisation efficace des couleurs dans votre projet Unity.
Que vous choisissiez l’un ou l’autre, ces deux structures sont facilement utilisables via l’interface de l’inspecteur Unity. Malgré leurs différences internes, leur utilisation dans l’inspecteur est presque identique.
Pour créer une couleur par le code, nous créons une instance de la structure « Color » ou « Color32« .
Vous pouvez également utiliser les propriétés statiques de la classe « Color » :
Propriété | Couleur RGBA | Couleur |
---|---|---|
Color.black | RGBA (0, 0, 0, 1) | |
Color.blue | RGBA (0, 0, 1, 1) | |
Color.clear | RGBA (0, 0, 0, 0) | |
Color.cyan | RGBA (0, 1, 1, 1) | |
Color.gray | RGBA (0.5, 0.5, 0.5, 1) | |
Color.green | RGBA (0, 1, 0, 1) | |
Color.grey | RGBA (0.5, 0.5, 0.5, 1) | |
Color.magenta | RGBA (1, 0, 1, 1) | |
Color.red | RGBA (1, 0, 0, 1) | |
Color.white | RGBA (1, 1, 1, 1) | |
Color.yellow | RGBA (1, 0.92, 0.016, 1) |
public void CreateColor()
{
// Même couleur que #ffffff, le blanc
var color = new Color(1f, 1f, 1f, 1f);
var color32 = un Color32(255, 255, 255, 255);
}
Pour convertir « Color » en « Color32« , il suffit d’effectuer une simple conversion (cast).
public void ConvertToColor32()
{
var color = un Color(1f, 1f, 1f, 1f);
var color32 = un Color32(255, 255, 255, 255);
Color castColor = color32;
Color32 castColor32 = color;
}
Pour convertir une couleur hexadécimale en « Color« , utilisez la méthode statique « TryParseHtmlString » de la classe « ColorUtility« .
private void HexToColor()
{
string hex = "#ffffff";
if (ColorUtility.TryParseHtmlString(hex, out Color color))
{
Debug.Log(color); // Color(1f, 1f, 1f, 1f);
}
}
Pour convertir « Color » en couleur hexadécimale, utilisez la méthode statique « ToHtmlStringRGBA » de la classe « ColorUtility« .
private void ColorToHex()
{
// Avec alpha
string hex = ColorUtility.ToHtmlStringRGBA(Color.red);
Debug.Log(hex); // FF0000FF
// Sans alpha
string hexNoAlpha = ColorUtility.ToHtmlStringRGB(Color.red);
Debug.Log(hexNoAlpha); // FF0000
}
Unity offre des fonctions d’interpolation linéaire (Lerp) pour à la fois « Color » et « Color32 ». Ces fonctions vous permettent de créer des transitions de couleur en douceur, rendant votre projet Unity visuellement captivant et dynamique.
private void ColorLerp()
{
// Interpolation entre le blanc et le noir
Color couleurInterpolée = Color.Lerp(Color.white, Color.black, 0.5f); // Résultat : RGBA(0.500, 0.500, 0.500, 1.000)
// Interpolation entre deux valeurs Color32
Color32 couleur32Interpolée = Color32.Lerp(new Color32(255, 255, 255, 255), new Color32(0, 0, 0, 0), 0.5f); // Résultat : RGBA(127, 127, 127, 127)
}
“Color.Lerp(a, b, t);”, permet de créer des transitions fluides entre deux points, « a » et « b », en fonction d’une valeur d’interpolation « t ». Cette technique est souvent utilisée pour obtenir des changements de couleur dynamiques dans Unity, améliorant l’expérience visuelle globale de vos projets.
Les structures « Color » et « Color32 », ainsi que les méthodes de conversion et les fonctions d’interpolation, vous fournissent les outils nécessaires pour travailler efficacement avec les couleurs.