Aizu-Progressive xr Lab blog

会津大学のVR部であるA-PxLの部員が持ち回りで投稿していくブログです。部員がそれぞれVRに関する出来事やVRにちなんだことについて学んだことを書いていきます。

「面白法人カヤックVR分室」としても活動しています。詳細はこちら

スクリプトからゲームオブジェクトのマテリアルの色を変える覚え書き

こんにちは、学部4年の杉山です。ネタが尽きたので覚え書きです。

はじめに

最近論文執筆を始めまして、その際にオブジェクトのマテリアルの色をスクリプトから変えているのでせっかくなのでメモ書き程度に紹介したいと思います。

f:id:aizu-vr:20200830135547p:plain

カラーネームを使う

Unityには9(10)のカラーネームがあります。

  1. black
  2. blue
  3. (clear)
  4. cyan
  5. gray(grey)
  6. green
  7. magenta
  8. red
  9. white
  10. 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 は任意の数

最後に

わざわざスクリプトから色を変更する機会もそうそうないとは思いますが、お役に立てば幸いです。色を変えるのが億劫なときなどにどうぞ。

参考

docs.unity3d.com

docs.unity3d.com

docs.unity3d.com

docs.unity3d.com

会津大学VR部の部員が持ち回りで投稿していくブログです。特にテーマに縛りを設けずに書いていきます!