Существует несколько вариантов.
Я предлагаю вам сделать следующее:
В вашем скрипте, который меняет один из ваших материалов, вызовите функцию типа
public void ChangeMaterial(Material m, int index){
GetComponent<Renderer>().materials[index] = m;
}
Если вы хотите изменить материал несколько раз, возможно, вы захотите кэшировать компонент Renderer
.
Полный пример сценария
public class MyScript : MonoBehaviour
{
private Renderer _renderer;
private void Start(){
_renderer = GetComponent<Renderer>();
}
public void ChangeMaterial(Material m, int index){
_renderer.materials[index] = m;
}
}