Mesh.bounds

var bounds : Bounds

Description

The bounding volume of the mesh.

This is the axis-aligned bounding box of the mesh in its local space (that is, not affected by the transform). See also Renderer.bounds property that returns bounds in world space.

See Also: Bounds class, Renderer.bounds property.

JavaScript
// Generates planar UV coordinates independent of mesh size
// by scaling vertices by the bounding box size

function Start () {
var mesh : Mesh = GetComponent(MeshFilter).mesh;
var vertices : Vector3[] = mesh.vertices;
var uvs : Vector2[] = new Vector2[vertices.Length];
var bounds : Bounds = mesh.bounds;

for (var i = 0; i < uvs.Length; i++)
uvs[i] = Vector2 (vertices[i].x / bounds.size.x
,vertices[i].z / bounds.size.x);

mesh.uv = uvs;
}

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
void Start() {
Mesh mesh = GetComponent<MeshFilter>().mesh;
Vector3[] vertices = mesh.vertices;
Vector2[] uvs = new Vector2[vertices.Length];
Bounds bounds = mesh.bounds;
int i = 0;
while (i < uvs.Length) {
uvs[i] = new Vector2(vertices[i].x / bounds.size.x, vertices[i].z / bounds.size.x);
i++;
}
mesh.uv = uvs;
}
}

import UnityEngine
import System.Collections

class example(MonoBehaviour):

def Start():
mesh as Mesh = GetComponent[of MeshFilter]().mesh
vertices as (Vector3) = mesh.vertices
uvs as (Vector2) = array[of Vector2](vertices.Length)
bounds as Bounds = mesh.bounds
i as int = 0
while i < uvs.Length:
uvs[i] = Vector2((vertices[i].x / bounds.size.x), (vertices[i].z / bounds.size.x))
i++
mesh.uv = uvs