Mesh
class in
UnityEngine
/
Hereda de:Object
Sugiere un cambio
¡Éxito!
Gracias por ayudarnos a mejorar la calidad de la documentación de Unity. A pesar de que no podemos aceptar todas las sugerencias, leemos cada cambio propuesto por nuestros usuarios y actualizaremos los que sean aplicables.
Cerrar
No se puedo enviar
Por alguna razón su cambio sugerido no pudo ser enviado. Por favor <a>intente nuevamente</a> en unos minutos. Gracias por tomarse un tiempo para ayudarnos a mejorar la calidad de la documentación de Unity.
Cerrar
Cambiar al Manual
Descripción
A class that allows creating or modifying meshes from scripts.
Meshes contain vertices and multiple triangle arrays.
See the Procedural example project
for examples of using the mesh interface.
The triangle arrays are simply indices into the vertex arrays; three indices for each triangle.
For every vertex there can be a normal, two texture coordinates, color and tangent.
These are optional though and can be removed at will. All vertex information is stored in separate
arrays of the same size, so if your mesh has 10 vertices, you would also have 10-size arrays
for normals and other attributes.
There are probably 3 things you might want to use the modifyable mesh interface for:
1. Building a mesh from scratch:
should always be done in the following order: 1) assign vertices 2) assign triangles.
var newVertices : Vector3[];
var newUV : Vector2[];
var newTriangles : int[];
function Start () {
var mesh : Mesh = new Mesh ();
GetComponent.<MeshFilter>().mesh = mesh;
mesh.vertices = newVertices;
mesh.uv = newUV;
mesh.triangles = newTriangles;
}
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
public Vector3[] newVertices;
public Vector2[] newUV;
public int[] newTriangles;
void Start() {
Mesh mesh = new Mesh();
GetComponent<MeshFilter>().mesh = mesh;
mesh.vertices = newVertices;
mesh.uv = newUV;
mesh.triangles = newTriangles;
}
}
2. Modifying vertex attributes every frame:
1) get vertices, 2) modify them, 3) assign them back to the mesh.
function Update () {
var mesh : Mesh = GetComponent.<MeshFilter>().mesh;
var vertices : Vector3[] = mesh.vertices;
var normals : Vector3[] = mesh.normals;
for (var i = 0; i < vertices.Length; i++)
vertices[i] += normals[i] * Mathf.Sin(Time.time);
mesh.vertices = vertices;
}
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
void Update() {
Mesh mesh = GetComponent<MeshFilter>().mesh;
Vector3[] vertices = mesh.vertices;
Vector3[] normals = mesh.normals;
int i = 0;
while (i < vertices.Length) {
vertices[i] += normals[i] * Mathf.Sin(Time.time);
i++;
}
mesh.vertices = vertices;
}
}
3. Continously changing the mesh triangles and vertices:
1) call Clear to start fresh, 2) assign vertices and other attributes, 3) assign triangle indices.
It is important to call Clear before assigning new vertices or triangles.
Unity always checks the supplied triangle indices whether they don't reference out of bounds vertices.
Calling Clear then assigning vertices then triangles makes sure you never have out of bounds data.
var newVertices : Vector3[];
var newUV : Vector2[];
var newTriangles : int[];
function Update () {
var mesh : Mesh = GetComponent.<MeshFilter>().mesh;
mesh.Clear();
// Do some calculations...
mesh.vertices = newVertices;
mesh.uv = newUV;
mesh.triangles = newTriangles;
}
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
public Vector3[] newVertices;
public Vector2[] newUV;
public int[] newTriangles;
void Update() {
Mesh mesh = GetComponent<MeshFilter>().mesh;
mesh.Clear();
mesh.vertices = newVertices;
mesh.uv = newUV;
mesh.triangles = newTriangles;
}
}
Variables
bindposes | The bind poses. The bind pose at each index refers to the bone with the same index. |
blendShapeCount | Returns BlendShape count on this mesh. |
boneWeights | The bone weights of each vertex. |
bounds | The bounding volume of the mesh. |
colors | Vertex colors of the mesh. |
colors32 | Vertex colors of the mesh. |
isReadable | Returns state of the Read/Write Enabled checkbox when model was imported. |
normals | The normals of the mesh. |
subMeshCount | The number of submeshes. Every material has a separate triangle list. |
tangents | The tangents of the mesh. |
triangles | An array containing all triangles in the mesh. |
uv | The base texture coordinates of the mesh. |
uv2 | The second texture coordinate set of the mesh, if present. |
uv3 | The third texture coordinate set of the mesh, if present. |
uv4 | The fourth texture coordinate set of the mesh, if present. |
vertexCount | Returns the number of vertices in the mesh (Read Only). |
vertices | Returns a copy of the vertex positions or assigns a new vertex positions array. |
Constructores
Mesh | Creates an empty mesh. |
Miembros heredados
Variables
hideFlags | Should the object be hidden, saved with the scene or modifiable by the user? |
name | El nombre del objeto. |
Funciones Estáticas
Destroy | Elimina un gameobject, componente o asset. |
DestroyImmediate | Destroys the object obj immediately. You are strongly recommended to use Destroy instead. |
DontDestroyOnLoad | Makes the object target not be destroyed automatically when loading a new scene. |
FindObjectOfType | Devuelve el primer objeto activo cargado de tipo type. |
FindObjectsOfType | Devuelve una lista de todos los objetos activos cargados de tipo type. |
Instantiate | Devuelve el nombre del objeto. |
Operadores
bool | ¿Existe el objeto? |
operator != | Compares if two objects refer to a different object. |
operator == | Compares two object references to see if they refer to the same object. |