メッシュのバウンズ
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