Unity Color Inspector

Gestion des Couleurs (color) dans Unity

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

Différence entre Color et Color32

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.

Définir des Couleurs via l’Inspecteur

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.

Unity Color Inspector

Définir des Couleurs par le Code

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 RGBACouleur
Color.blackRGBA (0, 0, 0, 1)
 
Color.blueRGBA (0, 0, 1, 1)
 
Color.clearRGBA (0, 0, 0, 0)
 
Color.cyanRGBA (0, 1, 1, 1)
 
Color.grayRGBA (0.5, 0.5, 0.5, 1)
 
Color.greenRGBA (0, 1, 0, 1)
 
Color.greyRGBA (0.5, 0.5, 0.5, 1)
 
Color.magentaRGBA (1, 0, 1, 1)
 
Color.redRGBA (1, 0, 0, 1)
 
Color.whiteRGBA (1, 1, 1, 1)
 
Color.yellowRGBA (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);
}

Conversion de Color en Color32

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;
}

Conversion de Couleurs Hexadécimales en Couleurs

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);
    }
}

Conversion de Couleurs en Codes Hexadécimaux

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
}

Interpolation des Couleurs avec Lerp

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)
}

Unity Color Lerp

“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.

Plus d’informations sur Lerp.

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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *