Version: Unity 6.0 (6000.0)
言語 : 日本語
メッシュの作成
スクリプトによるクアッドメッシュの作成

Mesh API によるメッシュへのアクセス

Mesh クラスは、オブジェクトのメッシュジオメトリに対する基本的なスクリプトインターフェースです。これは配列を使用して、三角形、頂点位置、法線、テクスチャ座標を表します。また、メッシュ生成を支援するその他いくつかの便利なプロパティと関数を提供します。

オブジェクトのメッシュへのアクセス

メッシュデータは、Mesh Filter コンポーネントを使用してオブジェクトにアタッチされます (このオブジェクトは、ジオメトリを表示するのに MeshRenderer も必要とします)。このコンポーネントには、使い慣れた GetComponent 関数を使用してアクセスします。

using UnityEngine;
public class ExampleScript : MonoBehaviour
{
    MeshFilter mf;
    void Start()
    {
        //if this gameObject has a MeshFilter, mf will reference the component
        mf = GetComponent<MeshFilter>();    
    }
}

メッシュデータの追加

メッシュオブジェクトには、頂点とそれらの関連するデータ (法線や UV 座標) と三角形データに対するプロパティがあります。頂点は任意の順番で指定できますが、法線と UV の配列は、インデックスがすべて頂点に対応するように順序付けされる必要があります (例: 法線の配列の要素 0 は、頂点 0 の法線を指定します)。頂点は、オブジェクトのローカル空間における点を表す Vector3s です。法線も同じくローカル座標で方向を表す標準化された Vector3s です。UV は、Vector2s として指定されますが、Vector2 タイプには、U や V というフィールドはないため、頭の中でこれらをそれぞれ X と Y に変換する必要があります。

三角形は、頂点配列のインデックスとして機能する整数の 3 の倍数で指定されます。三角形を表すために特殊なクラスを使用するのではなく、この配列は整数インデックスの簡単なリストで表します。インデックスは各三角形に対して 3 つずつ区切られ、最初の 3 つの要素は最初の三角形を定義し、次の 3 つは 2 つ目の三角形を定義する、というようになります。三角形の詳細について重要な点は、角の頂点の順序です。どの角から始めるかは問題ではありませんが、三角形の表示されている面を見下ろすようにした際に、右回りになるように角が配置されている必要があります。

Raw メッシュデータの操作

Mesh クラスには、Raw メッシュ頂点とインデックスバッファデータの操作を可能にする低レベルの上級者向けの API もあります。これは、最大のパフォーマンスが求められる、または最低限のメモリ割り当ての状況で役立ちます。

追加リソース

メッシュの作成
スクリプトによるクアッドメッシュの作成