Renderer の Materials を スクリプトから設定する

MeshRenderer などの Materials をスクリプトから動的に設定する。
普通にこうやればできるかなと思ったが、できず。

1
2
renderer.materials[0] = someMaterial1;
renderer.materials[1] = someMaterial2;

正解は以下。一度配列で取得して、配列としてセットし直すと動く。

1
2
3
4
Material[] mats = renderer.materials;
mats[0] = someMaterial1;
mats[1] = someMaterial2;
renderer.materials = mats;