マテリアルのEmissionをスクリプトで操作する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
// 第二引数をTrueにするとHDRカラーパネルになる [ColorUsage(false, true)] public Color color1; [ColorUsage(false, true)] public Color color2; private MeshRenderer r; private float timer; private bool isSwitch; void Start() { r = GetComponent<MeshRenderer>(); // マテリアルの変更するパラメータを事前に知らせる r.material.EnableKeyword("_EMISSION"); } void Update() { timer += Time.deltaTime; // 1秒ごとに色変える if (timer > 1f) { if (isSwitch) { r.material.SetColor("_EmissionColor", color1); isSwitch = false; } else { r.material.SetColor("_EmissionColor", color2); isSwitch = true; } // タイマーリセット timer = 0f; } } |
[ColorUsage(false, true)] により、
インスペクタにHDRのカラーパネルを出せるようになります。(下記画像参照)
