# mainTexture

> The main texture.

## Definition

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

```csharp
public Texture mainTexture { get; set; }
```

### Remarks

By default, Unity considers a texture with the property name `"_MainTex"` to be the main texture. Use the `[MainTexture]` [ShaderLab Properties attribute](/engine/6000.0/manual/materials-and-shaders/shaders/reference/sl-reference/sl-shader-object/sl-properties.md) to make Unity consider a texture with a different property name to be the main texture. When the main texture is set using the `[MainTexture]` attribute, it is not visible in the Game view when you use the texture streaming [debugging view mode](/engine/6000.0/manual/materials-and-shaders/textures/texture-loading/texture-streaming/analyze.md) or a custom debug tool.

This is the same as calling [Material.GetTexture](/engine/6000.0/script-reference/unityengine/material/gettexture.md) or [Material.SetTexture](/engine/6000.0/script-reference/unityengine/material/settexture.md) with the property name of the main texture as a parameter.

Additional Resources: [Material.SetTexture](/engine/6000.0/script-reference/unityengine/material/settexture.md), [Material.GetTexture](/engine/6000.0/script-reference/unityengine/material/gettexture.md), [ShaderLab: Properties](/engine/6000.0/manual/materials-and-shaders/shaders/reference/sl-reference/sl-shader-object/sl-properties.md), [ShaderPropertyFlags.MainTexture](/engine/6000.0/script-reference/unityengine/rendering/shaderpropertyflags/maintexture.md).

### Examples

```csharp
// Change main texture each changeInterval
// seconds from the texture array defined in the inspector.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    public Texture[] textures;
    public float changeInterval = 0.33F;
    public Renderer rend;

    void Start()
    {
        rend = GetComponent<Renderer>();
    }

    void Update()
    {
        if (textures.Length == 0)
            return;

        int index = Mathf.FloorToInt(Time.time / changeInterval);
        index = index % textures.Length;
        rend.material.mainTexture = textures[index];
    }
}
```
