以下の内容はhttps://kan-kikuchi.hatenablog.com/entry/ColorUtilityより取得しました。


Colorとカラーコードの相互変換【Unity】




この記事でのバージョン
Unity 2021.3.1f1


はじめに

UnityはColorという構造体で色(RGBA)を表現出来ますが、

[SerializeField]
private Color _color = Color.red;


その一方でテキストの一部だけの色を変えたいみたいな時はカラーコードを使います。

//_textはTextMeshProUGUI
_text.text = "<color=#ff0000>New</color> Text";


と言う事で今回はColorとカラーコードを相互に変換する方法の紹介です!



Color → カラーコード

まずはColorをカラーコードに変換する方法ですが、

ColorUtilityというクラスのToHtmlStringRGBもしくはToHtmlStringRGBAを使うだけ。

Color color = Color.red;
string colorCode = ColorUtility.ToHtmlStringRGB(color);
Debug.Log($"Color.redのカラーコード : {colorCode}");



カラーコード → Color

次にカラーコードをColorに変換する方法ですが、

こちらもColorUtilityというクラスのTryParseHtmlStringを使うだけ。

ただし、Colorに変換出来ない文字列を入力する事も出来てしまうため、

Colorはoutで受け取り、返り値で変換出来たかのboolを受け取る感じになります。

var colorCode = "#FF0000";
Color color;
if (ColorUtility.TryParseHtmlString(colorCode, out color)) {
  //変換成功
  Debug.Log($"カラーコード : {colorCode}はColorに変換すると{color.ToString()}");
}
else{
  //変換失敗
  Debug.LogError($"{colorCode}はColorに変換出来ません");
}






以上の内容はhttps://kan-kikuchi.hatenablog.com/entry/ColorUtilityより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14