【Unity】カラーピッカーで自由に色を設定したい


Unityで自由な色選択をしたい。

フリーのアセットもあるけど、ちょっとイメージと違った。

勉強もかねて自分で作ってみる。

 

GoogleだとHSV空間を使った選択ができた。

なんとなくRBG空間でやりたいのでこの方法はいったん置く。

 

まず色のRGB成分を8bit(0-255)の間でずらして設定するとこうなる。

これだとR, G, B 全ての値を持つ色(白:255,255,255とか)を表現できない。

そこで縦軸を使って白や黒も出るようにする。

これをスクリプトで書くとこうなる。

キャンバスにでもアタッチすればこんな感じで表示される。

これだとR, G, Bが同値の色(灰色とか)を表現できないし、白や黒が複数存在する。

そもそも3次元の値なので2次元では表現しきれない。

円状のマップ

ピッカーを長方形から円にして90°, 210°, 330°方向をRGB軸にしてみる。

3軸あるようだけど直交していないので表現できない色がある。

中心からの距離で明るさを変えて、サイドバーで調整できるような感じにする。

画面ではこんな感じ。

見たことある感じになってきた。

中心からの距離補正が適当すぎるので彩度を増やすような計算にしたほうが良いかもしれない。

そもそもテクスチャを自作する必要はないので、この方式を使うなら正しいやつを拾ってきて使ってもいい。

今日はとりあえずここまで。

 


コメントを残す

メールアドレスが公開されることはありません。