【Unity】DrawMesh初歩と動的Mesh生成
DrawMesh
APIはこれです.
これを使うことでアクティブなGameObjectを存在させずにMeshを描くことができます.
つまりその分軽量なわけです.
大抵は膨大な数(1,000,000とか)のパーティクルを扱う際に活躍する技術のようですが,
今回は初歩的に一つのMeshを描きます.
Meshは事前に用意せずに動的に生成してみます.
動的なMeshの生成に関してはこちらの記事がわかりやすいです.
コード
using UnityEngine;
public class DynamicMeshUsingDrawMesh : MonoBehaviour {
[SerializeField]
Material m_mat;
Mesh m_mesh;
void Start () {
// 動的Mesh生成
m_mesh = new Mesh();
m_mesh.vertices = new Vector3[] {
new Vector3 (-0.5f, -0.5f),
new Vector3 (0.5f, -0.5f),
new Vector3 (0.5f, 0.5f),
new Vector3 (-0.5f, 0.5f),
};
m_mesh.uv = new Vector2[]
{
new Vector2(0,0),
new Vector2(1f,0),
new Vector2(1f,1f),
new Vector2(0,1f),
};
m_mesh.triangles = new int[] {
0, 1, 2,
0, 2, 3,
};
m_mesh.RecalculateNormals();
m_mesh.RecalculateBounds();
}
private void Update()
{
Graphics.DrawMesh(m_mesh, Vector3.zero, Quaternion.identity, m_mat, 0);
}
}
マテリアルはなんでもいいですが,今回は適当に赤いマテリアルをつけます.

実行結果

動的にMeshを生成して描画できました.