言語: 日本語
  • C#
  • JS
  • Boo

スクリプト言語

お好みのスクリプト言語を選択すると、サンプルコードがその言語で表示されます。

Mesh

Namespace: 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. ゼロからメッシュを作成: 必ず次の手順で行なうべきです: 1) :ref::vertices を割り当て、2) :ref::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;
    }
}
import UnityEngine
import System.Collections

public class ExampleClass(MonoBehaviour):

	public newVertices as (Vector3)

	public newUV as (Vector2)

	public newTriangles as (int)

	def Start() as void:
		mesh as Mesh = Mesh()
		GetComponent[of 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;
    }
}
import UnityEngine
import System.Collections

public class ExampleClass(MonoBehaviour):

	def Update() as void:
		mesh as Mesh = GetComponent[of MeshFilter]().mesh
		vertices as (Vector3) = mesh.vertices
		normals as (Vector3) = mesh.normals
		i as int = 0
		while i < vertices.Length:
			vertices[i] += (normals[i] * Mathf.Sin(Time.time))
			i++
		mesh.vertices = vertices

3. 継続的にメッシュ三角および頂点を変化させる: 1) Clear の呼び出しによりゼロから開始 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;
    }
}
import UnityEngine
import System.Collections

public class ExampleClass(MonoBehaviour):

	public newVertices as (Vector3)

	public newUV as (Vector2)

	public newTriangles as (int)

	def Update() as void:
		mesh as Mesh = GetComponent[of MeshFilter]().mesh
		mesh.Clear()
		mesh.vertices = newVertices
		mesh.uv = newUV
		mesh.triangles = newTriangles

Variables

bindposes バインドポーズ。ボーンがバインドポーズのとき、ボーンの逆変換の逆行列を返します
blendShapeCount メッシュの BlendShape 数を返します
boneWeights 各頂点のボーンウェイト
bounds メッシュのバウンズ
colors メッシュの頂点の色配列
colors32 メッシュの頂点の色配列
isReadable モデルがインポートされたときの読み取り/書き込みの有効ステータス
normals メッシュの法線
subMeshCount サブメッシュの数。すべてのメッシュは切り離された三角形のリストを持ちます
tangents メッシュの接線
triangles メッシュ内の全ての三角形を含む配列
uv ベースとなるテクスチャの座標
uv2 2つめのテクスチャの座標
vertexCount メッシュの頂点の数 (Read Only)
vertices 頂点の位置、または新しい頂点の位置の配列

Constructors

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

Functions

Clear すべての頂点データと三角形のインデックスを削除します
CombineMeshes メッシュに複数のメッシュを組み合わせます
GetBlendShapeName 指定インデックスの BlendShape 名を返します
GetIndices サブメッシュの index バッファを返します
GetTopology サブメッシュの トポロジーを取得します
GetTriangles サブメッシュの三角形リストを返します
MarkDynamic 頻繁な更新を行うためにメッシュを最適化します
Optimize 表示用のメッシュを最適化します
RecalculateBounds 頂点からメッシュのバウンディングボリュームを再計算します
RecalculateNormals 三角形と頂点からメッシュの法線を再計算します
SetIndices サブメッシュの index バッファを設定します
SetTriangles サブメッシュの三角形のリストを設定します

Inherited members

Variables

hideFlags オブジェクトは非表示、シーンに保存、ユーザーが編集可能などを行うかどうか
name オブジェクト名

Functions

GetInstanceID Returns the instance id of the object.
ToString ゲームオブジェクトの名前を返します

Static Functions

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

Operators

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