スクリプトからゲームオブジェクトのマテリアルの色を変える覚え書き
こんにちは、学部4年の杉山です。ネタが尽きたので覚え書きです。
はじめに
最近論文執筆を始めまして、その際にオブジェクトのマテリアルの色をスクリプトから変えているのでせっかくなのでメモ書き程度に紹介したいと思います。
カラーネームを使う
Unityには9(10)のカラーネームがあります。
- black
- blue
- (clear)
- cyan
- gray(grey)
- green
- magenta
- red
- white
- yellow
clearは透明であるから色として含めるかはおいておくとして、これらのカラーネームを使うなら。
GetComponent<Renderer>().material.color = Color.black
のように記述すれば好きな色に変更できます。
RGBAを使う
RGBAを使うこともできます。
Color(float r, float g, float b, float a); //それぞれ r=赤、g=緑、b=青、a=アルファ値
RGBだけでも使えます。
Color(float r, float g, float b);
例文としては
GetComponent<Renderer>().material.color = Color( 0.1f, 0.2f, 0.3f, 0.4f );
アルファ値は指定しなければ1として扱われます。
おまけ
色を変更する際に便利なメソッドがあったので紹介します
Color Lerp( Color a, Color b, float t); // t は0~1の間、0の時はa、1の時はbを返す
使うときは
GetComponent<Renderer>().material.color = Color.Lerp( Color.white, Color.black, t); // t は任意の数
最後に
わざわざスクリプトから色を変更する機会もそうそうないとは思いますが、お役に立てば幸いです。色を変えるのが億劫なときなどにどうぞ。