Unity3D オブジェクトをスクリプトで色変更(RGB)
■Unity3Dのオブジェクトをスクリプトで色変更する方法
①適当なオブジェクトを用意してスクリプトをアタッチ
今回はCubeオブジェクトにMyScript.csをアタッチ
②MyScript.csのに下記内容を記述
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyScript : MonoBehaviour
{
// ゲームオブジェクト変数を宣言
GameObject cube;
// 色変数を宣言
// 赤
float r;
// 緑
float g;
// 青
float b;
// Start is called before the first frame update
void Start()
{
// スクリプトをアタッチしたCubeを設定
cube = this.gameObject;
// 各色変数を初期化
r = 0f;
g = 0f;
b = 0f;
// Cubeの色を黒で初期化 ※RGB(0, 0, 0)
cube.GetComponent().material.color = new Color(r, g, b);
}
// Update is called once per frame
void Update()
{
// 特に意味はないが動いていたほうが見栄えがいいのでCubeを回転
cube.GetComponent().Rotate(1,0,1);
// 「スペース」押下時
if (Input.GetKey(KeyCode.Space)) {
// 押下毎にCubeを赤色に近づけていく ※r=255 => 赤色
if (r <= 255) {
r += 1;
} else {
// 赤色になったら初期の黒に戻す
r = 0;
}
// Cubeの色を変更
// new Color()でRGB指定 ※255で割ること
cube.GetComponent().material.color = new Color(r/255,g/255,b/255);
}
}
}
③Unityで再生して、スペースを押すごとに赤色に近づき、赤色になると初期の黒色に戻る