Version: 5.4 (switch to 5.5b)
言語English
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Mesh

class in UnityEngine

/

Inherits from: Object

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

マニュアルに切り替える

Description

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

メッシュは頂点と複数の三角形の配列を含んで作成されています。 メッシュインターフェースを使用したサンプルについては プロシージャルのサンプルプロジェクト を参照してください。

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

すべての頂点に、法線、二つのテクスチャ座標、カラー、接線を保持できます。 これらはオプションであり、希望により削除できます。すべての頂点情報は 同じ大きさの別の配列に格納されるため、もし自身のメッシュが 10 個の頂点がある場合、 10 個の法線や他の属性もまた存在します。

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

1. 0 からメッシュを作成 : should always be done in the following order:
a) assign vertices
b) 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:
a) get vertices
b) modify them
C) それらをメッシュに再び割り当てます。

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:
a) call Clear to start fresh
b) assign vertices and other attributes
c) 三角形のインデックスを割り当てます。

新しい頂点や三角を割り当てする前に Clear を呼び出しすることが大切です。 Unity により提供された三角頂点は常に、範囲外の頂点が参照されてないかチェックされます。 Clear を呼び出し、頂点を割り当て、三角を割り当て、という順番を守ることにより範囲外のデータがないことが保証されます。

no example available in JavaScript
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; } }

Variables

bindposesバインドポーズ。各インデックスのバインドポーズは同じインデックスのボーンを参照します。
blendShapeCountメッシュの BlendShape 数を返します
boneWeights各頂点のボーンウェイト
boundsメッシュのバウンズ
colorsメッシュの頂点の色配列
colors32メッシュの頂点の色配列
isReadableモデルがインポートされたときの読み取り/書き込みの有効ステータス
normalsメッシュの法線
subMeshCountサブメッシュの数。すべてのメッシュは個別の三角形のリストを持ちます。
tangentsメッシュの接線
trianglesメッシュ内のすべての三角形を含む配列
uvMash のベースとなるテクスチャの座標
uv22 つめのテクスチャの座標
uv3存在する場合、メッシュの 3 番目のテクスチャ座標設定
uv4存在する場合、メッシュの 4 番目のテクスチャ座標設定
vertexCountメッシュの頂点の数 (読み取り専用) を返します。
vertices頂点の位置や、新しい頂点の位置の配列

Constructors

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

Public Functions

AddBlendShapeFrame新しいブレンドシェイプのフレームを追加します
Clearすべての頂点データと三角形のインデックスを削除します
ClearBlendShapesメッシュからすべてのブレンドシェイプをクリアします
CombineMeshesメッシュに複数のメッシュを組み合わせます
GetBlendShapeFrameCountブレンドシェイプのフレーム数を返します
GetBlendShapeFrameVerticesブレンドシェイプフレームの deltaTangents、deltaTangents、deltaTangents を取得します
GetBlendShapeFrameWeightブレンドシェイプフレームの重みを返します
GetBlendShapeIndex指定インデックスの BlendShape のインデックスを返します。
GetBlendShapeName指定インデックスの BlendShape 名を返します
GetIndicesサブメッシュの index バッファを返します
GetTopologyサブメッシュのトポロジーを取得します
GetTrianglesサブメッシュの三角形リストを返します
GetUVs指定されたチャンネルの UV を取得します
MarkDynamic頻繁な更新を行うためにメッシュを最適化します
Optimize表示用にメッシュを最適化します
RecalculateBounds頂点からメッシュのバウンディングボリュームを再計算します
RecalculateNormals三角形と頂点からメッシュの法線を再計算します
SetColorsメッシュの頂点の色配列
SetIndicesサブメッシュのインデックスバッファを設定します。
SetNormalsメッシュの法線を設定します。
SetTangentsメッシュの接線を設定します。
SetTrianglesサブメッシュの三角形のリストを設定します。
SetUVs指定されたチャンネルの UV を設定します
SetVertices新しい頂点位置の配列を割り当てます
UploadMeshData以前行ったメッシュの変更をグラフィック API へアップロードします。

Inherited members

Variables

hideFlagsオブジェクトは非表示、シーンに保存、ユーザーが編集可能、などを設定する。
nameオブジェクト名

Public Functions

GetInstanceIDオブジェクトのインスタンス ID を返します
ToStringゲームオブジェクトの名前を返します

Static Functions

Destroyゲームオブジェクトやコンポーネント、アセットを削除します
DestroyImmediateオブジェクト obj を破棄します。
DontDestroyOnLoad新しいシーンを読み込んでもオブジェクトが自動で破壊されないように設定します
FindObjectOfTypeタイプ type から最初に見つけたアクティブのオブジェクトを返します
FindObjectsOfTypeタイプから見つけたすべてのアクティブのオブジェクト配列を返します
Instantiateオブジェクト original のコピーを返します

Operators

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