Unity Color型を16進数に変えたい [mr]

2019年1月18日

SpriteRendererとかが持っているColor型の情報を16進数に変えたい時がありました。
(要はColor(255.0f, 0.0f, 0.0f)を#FF0000みたいにしたかった。)

どうして、これをしたいシチュエーションに出会ったかというと、
Textのリッチテキストを利用して文字色を変えたかったからです。

そうなると、

<color=?>文字</color>

この?の部分は色の文字列か、16進数の値しか受け付けないので、
この需要が生まれました。

結果はとても簡単で、
Unityに含まれているクラスColorUtilityを利用するとすぐ解決しました。

他にも、アルファ値付きの16進数文字列にする ToHtmlStringRGBA関数や、

逆に16進数値からColor型に変換する TryParseHtmlString関数などもありました。
TryParseHtmlString関数に関してはTryとある通り、
実行結果が予期せぬ値になることがあるので注意ですね。

そして、冒頭に言ったやりたいことを実現したコードがこちらになります。

 

気になる点や、いや、これ違うやろ。ってところがありましたら、
気軽にコメントください。
至急、修正いたします。

mr