名古屋でアプリ・VR開発を行っています
ワクワクできるゲームをガンガン開発リリース中!

UnityのGradientの使い方

みなさん、こんにちは!SAT-BOXのツバメです。

 

今回はUnityの機能の一つにある、グラデーションカラーを扱える「Gradient」の使い

方についてざっとご紹介しようと思います。

 

といっても難しいことはあまりなく、スクリプトに以下のコードを書けばグラデーショ

ンカラーの設定をすることが出来ます。

f:id:sat-box:20210413085706j:plain

 

インスペクターを見ると以下のような表示になり、クリックするとカラーの設定ができ

るウインドウが表示されると思います。

f:id:sat-box:20210413090023j:plain

 

これでグラデーションカラーの設定は出来るようになりました!

次は実際に色をグラデーションさせてみましょう!

(事前にカラーの設定は変更しておいてください)

 

まずはグラデーションさせるものとしてCubeを作成してシーンに配置してください。

次に以下のコードを先程作成したスクリプトに書いてみましょう!

f:id:sat-box:20210413090710p:plain

 

スクリプトは配置したCubeにアタッチしてください。

実行すると下の動画のような感じにキレイにグラデーションするはずです。

(グラデーションカラーの設定で結果は変わります。今回は赤→青のグラデーションの設

定にしています)

https://i.gyazo.com/fc4c30479623ea4288b3f352104f0b8a.gif

 

これだけでグラデーションする演出の実装も簡単に出来てしまいます!

 

コード内のグラデーションの処理は

cube.material.color = gradient.Evaluate(Mathf.PingPong(Time.time, 1f));

の部分です。

Evaluate()でグラデーションの色情報を取得しているという感じです。

Evaluate()の引数は0~1の間を指定します。動画では赤から青にグラデーションするので

0は赤、1は青ということになります。0から徐々に数値を増やすことでグラデーション

させている感じに見せているということです。

今回はMathf.PingPongを使用することで0から1を行ったり来たりさせています。

 

今回はざっとGradientの使い方についてざっと紹介しましたが、Gradientの機能は他に

もありますので、時間があればご紹介しようと思います。

以上、ツバメでした!