Unity コルーチンとカラーでレインボーカラー

派手な演出で使えそうな小技でコルーチンを使い、Imageをレインボーにしてみたいと思います。
非常に簡単に虹色の発光ができますのでゲームで華やかな演出を加えたい時に使ってみて下さい。

ちなみにこの小技を使って作ったゲームはこちらになります。
ゲージが一定まで溜まった時や、クリア時の演出で使ってます。

発光させたいImageを設置

では最初にHierarchyに発光させたいImageを設置しましょう。
RainbowImageとしました。

InspectorからPosX,PosYを0,0にして中央に持ってきておきましょう。

発光処理のスクリプト作成

次に発光の処理をスクリプトに書いて行きます。
RainbowというC#スクリプトを作成し、RainbowImageにアタッチします。

スクリプトの中身も非常にシンプルです。
具体的にはこのようになります。

見ていただければわかるようにやっていることは非常にシンプルです。
コルーチンの中のColor.HSVToRGB(Time.time % 1, 1, 1);について少しだけ触れておきます。

普段色を変える場合はnew Color(値,値,値)としていることが多いと思います。
これはRGBという色の表現法です。
R=赤、G=緑、B=青の3つの色を足したり引いたりして表現しています。

今回はそれとは異なりHSVという表現法を使っています。
H=色相(色を特徴づける色み)、S=彩度(色の鮮やかさ)、V=明度(色の明るさ)となっています。

RainbowImageのInspectorを見てみましょう。
普段Colorを選択するとRGB(A)になっています。

これをHSVに変更してみます。するとこのようになります。

Hの部分に色んな色がありますね。
これを色相スケールと呼ぶそうです。
私は色相に関してはあまり詳しく無いのでリンクを貼っておきます。興味のある方は見てみて下さい。

この値を変化させれば虹色に発光します。
実際にやってみましょう。

RGBの値を使ってレインボーにする場合ですとR,G,Bそれぞれの値を変化させる必要がありますが、HSVですとHの値だけを変化させれば良いので簡単です。

HSVToRGB()関数の引数はH,S,Vと3つあり、それぞれfloatで0から1までの値となります。
Color.HSVToRGB(Time.time % 1, 1, 1)としておくことでHの値を開始からの時間を1で割ったあまりにすることで0から1未満のfloatの値を取得しHの値を変化させ、HSVの値からRGBの色を作成しRainbowImageの色にしています。

詳しくはUnityの公式リンクを載せておきます。

では実際にRainbowスクリプトをアタッチした状態で再生してみましょう。

無事にレインボーカラーになりました。
このまま光らせていてもいいのですが、せっかくならレインボーを止める機能も実装したいと思います。

Buttonを使って発光を止める

発光を止めるにはコルーチンを止めれば良いです。
今回はRainbowImageにButtonコンポーネントを付けてクリックで発光のオンオフを実装してみたいと思います。

Rainbowの中身をこのように変えてました。

コルーチンの止め方は今回はコルーチン型の変数に代入してそれをStopCoroutine()関数で止める方法を使ってみました。
またRainbowImageにはStart時にコードからButtonコンポーネントを追加してクリックに_toggleRainbow()という関数を登録してあります。


このような感じでクリックによって発光のオンオフが切り替えれるようになりました。

なかなか使い所は限られるかもですが、画像を虹色に発光させる方法でした。

この記事への感想・コメントをどうぞ

購読
通知する
guest
0 コメント
Inline Feedbacks
View all comments

Unityの学習方法

Udemy

Udemyの動画講座にもUnity関連のオススメの動画がたくさんあります。

その中でも私が特に気に入っている動画を紹介します。

テックアカデミー

途中で挫折しないためにメンター(相談者)が週2回、マンツーマンであなたの質問・相談に答えてくれます。 ゲーム開発・プログラミング未経験の人でも安心してゲーム開発に取り組めます。 受講終了後、自分のオリジナルゲームでコンテストに応募することができます。

デジハリONLINE

【基礎編】【実践編】とカリキュラムが分かれていて、それぞれに課題があり、ご自身の理解度を把握できます。 内容も充実していて最終的にはハイクオリティの3Dゲームが作れるようになります。 サイト内にカリキュラム詳細のPDFが公開されていますので、一度見てみるのも良いでしょう。 サポート体制は、回数無制限のSlackによるテキスト質問予約制のZoomによる個別質問があります。

Unity本【kindle unlimited】

私も利用しているAmazonが提供する電子書籍読み放題のサービスです。

月額980円で約200万冊以上が読み放題でとてもお得です。

また30日無料体験もできるのが魅力です。当然Unityに関する書籍もたくさん揃っています。

またC#関連の書籍や、プログラミングのものも多数あります。

プログラミング関連の書籍は値段が結構しますので、それらが無料で読めるのはかなりお得なサービスです。

30日無料体験もありますので気に入らなければその期間に解約すれば料金は発生しません

通常のUnity本

kindle unlimitedは全部のUnity関連書籍が読めるわけではありません。

通常に購入しなければ読めない本もありますので、その中から私が参考になった書籍を紹介します。

関連記事

最後までご覧頂いてありがとうございました。

Unityゲーム制作講座 多数公開

作りたかったジャンルの講座でスキルUP♪

もっと早く教えてほしかった!

Unity C#プログラミング入門

2Dローグライトゲーム開発

Unity ヴァンパイアサバイバーズ風 講座

目指せ 脱初心者!

ワンランク上の実践向けシューティング講座

プログラミング未経験でもOK

初学者向け ブロック崩しで学ぶUnityゲーム開発

作って覚える 7つの2Dパズル

段階的にUnityゲーム開発をレベルアップ