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

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

Mesh

class in UnityEngine

/

継承:Object

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える

説明

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

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

三角配列は頂点配列のインデックスであり、おのおのの三角ごとに 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) assign triangle indices.

新しい頂点や三角を割り当てする前に 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; } }

変数

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

コンストラクタ

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

Public 関数

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 へアップロードします。

継承メンバー

変数

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

Public 関数

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

Static 関数

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

Operator

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