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

スクリプト言語

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

Mesh

class in UnityEngine

/

継承:Object

フィードバック

ありがとうございます

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

閉じる

送信に失敗しました

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

閉じる

キャンセル

マニュアルに切り替える

説明

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

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

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

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

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

1. 0 からメッシュを作成 : 必ず次の手順で行なうべきです: 1) vertices を割り当て、2) 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. 毎フレームごとに頂点属性を修正 : 1) 頂点を取得 2) それらを修正 3) それらをメッシュに再び割り当て

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. 継続的にメッシュ三角および頂点を変化させる : 1) Clear の呼び出しにより 0 から開始 2) 頂点および他の属性を割り当て 3) 三角頂点を割り当て

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

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; } }

変数

bindposesバインドポーズ。各インデックスのバインドポーズは同じインデックスのボーンを参照します。
blendShapeCountメッシュの BlendShape 数を返します
boneWeights各頂点のボーンウェイト
boundsメッシュのバウンズ
colorsメッシュの頂点の色配列
colors32メッシュの頂点の色配列
isReadableモデルがインポートされたときの読み取り/書き込みの有効ステータス
normalsメッシュの法線
subMeshCountサブメッシュの数。すべてのメッシュは切り離された三角形のリストを持ちます
tangentsメッシュの接線
trianglesメッシュ内のすべての三角形を含む配列
uvベースとなるテクスチャの座標
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サブメッシュの index バッファを設定します
SetNormalsメッシュの法線を設定します。
SetTangentsメッシュの接線を設定します。
SetTrianglesサブメッシュの三角形のリストを設定します
SetUVs指定されたチャンネルの UV を設定します。
SetVertices新しい頂点位置の配列を割り当てます。
UploadMeshData以前やったメッシュの変更をグラフィック API へアップロードします。

継承メンバー

変数

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

Public 関数

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

Static 関数

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

Operator

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