【Unity】MeshRenderer でメッシュを表示する

動作確認 Unity
動作確認

Unity で MeshRenderer を使用してメッシュを表示します。

MeshRenderer でメッシュを表示する

Mesh Renderer コンポーネント

MeshRenderer は、Unity でメッシュを表示するために用意されているコンポーネントです。

Unity - マニュアル: Mesh Renderer コンポーネントのリファレンス

準備

・新しいプロジェクト(Universal 3D)を作成します。
・ヒエラルキーに Create Empty で新しいゲームオブジェクト(名前は MyMeshTest)を作成します。
・プロジェクトビューで MyMeshTest スクリプトを新規作成します。
・MyMeshTest ゲームオブジェクトに MyMeshTest スクリプトを追加します。

準備
準備

スクリプトの作成

三角形を2つ合わせて、四角いメッシュを作成します。
テクスチャを表示するために UVデータも設定します。

public class MyMeshTest : MonoBehaviour {
    private MeshRenderer m_rMeshRenderer = null;
    private MeshFilter m_rMeshFilter = null;
    private Mesh m_rMesh = null;
    [SerializeField] private Material m_rMaterial = null;

    void Start() {
        Init();
    }

    private void Init() {
        m_rMeshRenderer = gameObject.AddComponent<MeshRenderer>();
        m_rMeshFilter = gameObject.AddComponent<MeshFilter>();
        m_rMesh = CreateMesh();
        m_rMeshRenderer.material = m_rMaterial;
        m_rMeshFilter.sharedMesh = m_rMesh;
    }

    private Mesh CreateMesh() {
        // 頂点データ.
        List<Vector3> arVertices = new List<Vector3>(4);
        arVertices.Add(new Vector3(-1f, -1f, 0f));
        arVertices.Add(new Vector3(1f, -1f, 0f));
        arVertices.Add(new Vector3(-1f, 1f, 0f));
        arVertices.Add(new Vector3(1f, 1f, 0f));
        // インデックスデータ.
        List<int> anIndices = new List<int>(6);
        anIndices.Add(0);
        anIndices.Add(2);
        anIndices.Add(1);
        anIndices.Add(1);
        anIndices.Add(2);
        anIndices.Add(3);
        // UVデータ.
        List<Vector2> arUVs = new List<Vector2>(4);
        arUVs.Add(new Vector2(0f, 0f));
        arUVs.Add(new Vector2(1f, 0f));
        arUVs.Add(new Vector2(0f, 1f));
        arUVs.Add(new Vector2(1f, 1f));
        // メッシュの作成.
        Mesh rMesh = new Mesh();
        rMesh.SetVertices(arVertices);
        rMesh.SetIndices(anIndices, MeshTopology.Triangles, 0);
        rMesh.SetUVs(0, arUVs);
        return rMesh;
    }
}

マテリアルの作成

MyMeshTest マテリアルを新規作成します。
今回はライトの影響を受けない Unlit シェーダーを選択しました。

マテリアルの作成
マテリアルの作成

インスペクターで MyMeshTest コンポーネントにマテリアルを設定するのを忘れないようにしましょう。

マテリアルの設定
マテリアルの設定

動作確認

Unity エディターを再生して、動作確認しましょう。
カメラの位置を調整して、見えやすいようにしましょう。

動作確認
動作確認

まとめ

MeshRenderer を使用してメッシュを表示しました。
数値を変更したりして、動作がどう変わるかいろいろ試してみても面白いですね。

コメント

タイトルとURLをコピーしました