【 Unity 】カラーコードを Color 型に変換する方法【 C# 】

UnityでカラーコードをColor型に変換する方法

はじめに

このブログでは、Unity と C# を使用してカラーコードを Color 型に変換する方法を紹介します。

この知識は、ゲーム開発やその他の Unity プロジェクトで色を動的に制御する際に役立ちます。

カラーコードとは?

カラーコードとは、色を数値的に表現したものです。

一般的には、HTML や CSS などのウェブ技術でよく使われます。

原色大辞典の参考カラー
引用:原色大辞典

例えば、白は「#FFFFFF」、黒は「#000000」、赤は「#FF0000」のように表されます。これらのコードは RGB(Red、Green、Blue)値を16進数で表現しています。

Unity の Color 型とは?

Unity の Color 型は、色を表現するためのデータ型です。

Color 型は RGBA(Red、Green、Blue、Alpha)値を 0 ~ 1または 0 ~ 255 の範囲で表現します。

Unityのカラーパレット

例えば、Color(1, 0, 0, 1) は赤Color(0, 1, 0, 1) は緑Color(0, 0, 1, 1) は青を表します。Alpha 値は透明度を表し、1 は完全に不透明、0 は完全に透明を意味します。

カラーコードを Color 型に変換する方法

Unity のColorUtility.TryParseHtmlStringを使って HTML カラーコードを Color 型に変換する方法を説明します。以下にそのサンプルコードを示します。

using UnityEngine;

public class ColorTest : MonoBehaviour
{
    void Start()
    {
        // HTML形式のカラーコード。この例では赤色を指定しています。
        string htmlColor = "#FF0000";

        Color color;
        if (ColorUtility.TryParseHtmlString(htmlColor, out color))
        {
            // 変換に成功した場合、color変数は指定したカラーコードに対応するColorオブジェクトになります。
            Debug.Log("Color: " + color);
        }
        else
        {
            // 変換に失敗した場合、エラーメッセージを表示します。
            Debug.Log("Failed to convert HTML color string");
        }
    }
}

このサンプルコードは、HTML 形式のカラーコードを Color 型に変換しています。変換に成功すると、変換後の Color オブジェクトがログに表示されます。変換に失敗した場合はログにエラーメッセージが表示されます。

ColorUtility.TryParseHtmlStringメソッドは、HTML 形式のカラーコードを Unity の Color 型に変換するためのメソッドです。このメソッドは、変換が成功すると true を返し、変換が失敗すると false を返します。このため、if 文を使用して変換の成功/失敗をチェックしています。

参考資料