Version: 2019.1

Mesh

class in UnityEngine

/

継承:Object

マニュアルに切り替える

説明

スクリプトからメッシュの作成や変更をできるようにするクラスです。

Meshes contain vertices and multiple triangle arrays. See the Procedural example project for examples of using the mesh interface.

三角配列は頂点配列のインデックスであり、おのおのの三角ごとに 3 つの頂点を使用します。

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.

修正できるメッシュインターフェースを使用する目的は通常は 3 つほどあります。

1. Building a mesh from scratch: should always be done in the following order:
a) assign vertices
b) assign triangles.

using UnityEngine;

public class Example : MonoBehaviour { Vector3[] newVertices; Vector2[] newUV; 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:
a) get vertices
b) modify them
c) assign them back to the mesh.

using UnityEngine;

public class Example : MonoBehaviour { void Update() { Mesh mesh = GetComponent<MeshFilter>().mesh; Vector3[] vertices = mesh.vertices; Vector3[] normals = mesh.normals;

for (var i = 0; i < vertices.Length; i++) { vertices[i] += normals[i] * Mathf.Sin(Time.time); }

mesh.vertices = vertices; } }

3. Continously changing the mesh triangles and vertices:
a) call Clear to start fresh
b) assign vertices and other attributes
c) 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.

using UnityEngine;

public class ExampleClass : MonoBehaviour { Vector3[] newVertices; Vector2[] newUV; int[] newTriangles;

void Start() { Mesh mesh = GetComponent<MeshFilter>().mesh;

mesh.Clear();

// Do some calculations... mesh.vertices = newVertices; mesh.uv = newUV; mesh.triangles = newTriangles; } }

変数

bindposesバインドポーズ。各インデックスのバインドポーズは同じインデックスのボーンを参照します。
blendShapeCountメッシュの BlendShape 数を返します
boneWeights各頂点のボーンウェイト
boundsメッシュのバウンズ
colorsメッシュの頂点の色配列
colors32メッシュの頂点の色配列
indexFormatFormat of the mesh index buffer data.
isReadableReturns true if the Mesh is read/write enabled, or false if it is not.
normalsメッシュの法線
subMeshCountThe number of sub-meshes inside the Mesh object.
tangentsメッシュの接線
trianglesメッシュ内のすべての三角形を含む配列
uvMash のベースとなるテクスチャの座標
uv22 つめのテクスチャの座標
uv3存在する場合、メッシュの 3 番目のテクスチャ座標設定
uv4存在する場合、メッシュの 4 番目のテクスチャ座標設定
uv5The fifth texture coordinate set of the mesh, if present.
uv6The sixth texture coordinate set of the mesh, if present.
uv7The seventh texture coordinate set of the mesh, if present.
uv8The eighth texture coordinate set of the mesh, if present.
vertexBufferCountGets the number of vertex buffers present in the Mesh. (Read Only)
vertexCountメッシュの頂点の数 (読み取り専用) を返します。
vertices頂点の位置や、新しい頂点の位置の配列

コンストラクタ

Mesh空のメッシュを作成します

Public 関数

AddBlendShapeFrame新しいブレンドシェイプのフレームを追加します
Clearすべての頂点データと三角形のインデックスを削除します
ClearBlendShapesメッシュからすべてのブレンドシェイプをクリアします
CombineMeshesメッシュに複数のメッシュを組み合わせます
GetBaseVertexGets the base vertex index of the given sub-mesh.
GetBindposesGets the bind poses for this instance.
GetBlendShapeFrameCountブレンドシェイプのフレーム数を返します
GetBlendShapeFrameVerticesブレンドシェイプフレームの deltaTangents、deltaTangents、deltaTangents を取得します
GetBlendShapeFrameWeightブレンドシェイプフレームの重みを返します
GetBlendShapeIndex指定インデックスの BlendShape のインデックスを返します。
GetBlendShapeName指定インデックスの BlendShape 名を返します
GetBoneWeightsGets the bone weights for this instance.
GetColorsGets the vertex colors for this instance.
GetIndexCountGets the index count of the given sub-mesh.
GetIndexStartGets the starting index location within the Mesh's index buffer, for the given sub-mesh.
GetIndicesFetches the index list for the specified sub-mesh.
GetNativeIndexBufferPtrインデックスバッファへのネイティブ (規定のグラフィックス API) ポインターを探します。
GetNativeVertexBufferPtr頂点バッファを指すネイティブ (基底にあるグラフィックス API) ポインターを捜します。
GetNormalsGets the vertex normals for this instance.
GetTangentsGets the tangents for this instance.
GetTopologyGets the topology of a sub-mesh.
GetTrianglesFetches the triangle list for the specified sub-mesh on this object.
GetUVDistributionMetricThe UV distribution metric can be used to calculate the desired mipmap level based on the position of the camera.
GetUVsGets the UVs of the Mesh.
GetVerticesGets the vertex positions for this instance.
MarkDynamic頻繁な更新を行うためにメッシュを最適化します
RecalculateBounds頂点からメッシュのバウンディングボリュームを再計算します
RecalculateNormals三角形と頂点からメッシュの法線を再計算します
RecalculateTangentsRecalculates the tangents of the Mesh from the normals and texture coordinates.
SetColorsメッシュの頂点の色配列
SetIndicesSets the index buffer for the sub-mesh.
SetNormalsメッシュの法線を設定します。
SetTangentsメッシュの接線を設定します。
SetTrianglesSets the triangle list for the sub-mesh.
SetUVsSets the UVs of the Mesh.
SetVertices新しい頂点位置の配列を割り当てます
UploadMeshData以前行ったメッシュの変更をグラフィック API へアップロードします。

継承メンバー

変数

hideFlagsShould the object be hidden, saved with the Scene or modifiable by the user?
nameオブジェクト名

Public 関数

GetInstanceIDオブジェクトのインスタンス ID を返します
ToStringReturns the name of the GameObject.

Static 関数

Destroyゲームオブジェクトやコンポーネント、アセットを削除します
DestroyImmediateDestroys the object obj immediately. You are strongly recommended to use Destroy instead.
DontDestroyOnLoadDo not destroy the target Object when loading a new Scene.
FindObjectOfTypeタイプ type から最初に見つけたアクティブのオブジェクトを返します
FindObjectsOfTypeタイプから見つけたすべてのアクティブのオブジェクト配列を返します
Instantiateoriginal のオブジェクトをクローンします

Operator

boolオブジェクトが存在するかどうか
operator !=二つのオブジェクトが異なるオブジェクトを参照しているか比較します
operator ==2つのオブジェクト参照が同じオブジェクトを参照しているか比較します。