メッシュのバウンズ
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 クラス, Renderer.bounds
// 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 ExampleClass : 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 public class ExampleClass(MonoBehaviour): def Start() as void: 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