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: