# materials

> Returns all the instantiated materials of this object.

## Definition

* **Type:** Property
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public Material[] materials { get; set; }
```

### Remarks

This is an array of all materials used by the renderer. Unity supports a single object using multiple materials; in this case `materials` contains all the materials. [Renderer.sharedMaterial](/engine/6000.7/script-reference/unityengine/renderer/sharedmaterial.md) and [Renderer.material](/engine/6000.7/script-reference/unityengine/renderer/material.md) properties return the first used material if there is more than one.

Modifying any material in `materials` will change the appearance of only that object.

Note that like all arrays returned by Unity, this returns a copy of materials array. If you want to change some materials in it, get the value, change an entry and set materials back.

**Note:**

This function automatically instantiates the materials and makes them unique to this renderer. It is your responsibility to destroy the materials when the game object is being destroyed. [Resources.UnloadUnusedAssets](/engine/6000.7/script-reference/unityengine/resources/unloadunusedassets.md) also destroys the materials but it is usually only called when loading a new level.
