Legacy Documentation: Version 2018.2 (Go to current version)
Movie Textures
Texture arrays
Other Versions

3D Textures

Switch to Scripting

3D Textures can only be created from script. The following snippet creates 3D texture where each axis X, Y and Z corresponds to the colour values red, green and blue.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Example : MonoBehaviour
{

    Texture3D texture;

    void Start ()
    {
        texture = CreateTexture3D (256);
    }

    Texture3D CreateTexture3D (int size)
    {
        Color[] colorArray = new Color[size * size * size];
        texture = new Texture3D (size, size, size, TextureFormat.RGBA32, true);
        float r = 1.0f / (size - 1.0f);
        for (int x = 0; x < size; x++) {
            for (int y = 0; y < size; y++) {
                for (int z = 0; z < size; z++) {
                    Color c = new Color (x * r, y * r, z * r, 1.0f);
                    colorArray[x + (y * size) + (z * size * size)] = c;
                }
            }
        }
        texture.SetPixels (colorArray);
        texture.Apply ();
        return texture;
    }
        
}


Did you find this page useful? Please give it a rating:

Movie Textures
Texture arrays