var materials : Material = mesh.renderer.materials;
materials[0] = crateMat1snow;
mesh.renderer.materials = materials;
That works but generates a unity error:
Instantiating material due to calling renderer.material during edit mode. This will leak materials into the scene. You most likely want to use renderer.sharedMaterial instead.
UnityEngine.Renderer:get_materials()
in unity 3.5