Unityでラインを描く方法

メソッド化しておいた。

/// <summary>
/// ラインを作成する
/// </summary>
/// <param name="objectName">作成するオブジェクト名</param>
/// <param name="pos1">ラインの開始位置</param>
/// <param name="pos2">ラインの終了位置</param>
/// <param name="color">描画色</param>
/// <returns>生成したGameObject</returns>
GameObject CreateLine(string objectName,Vector3 pos1, Vector3 pos2, Color color)
{
	//メッシュオブジェクトを生成
	Mesh mesh = new Mesh();
	//頂点用データの設定
	Vector3[] lineList = new Vector3[2];
	lineList[0] = pos1 + basePos;
	lineList[1] = pos2 + basePos;
	//INDEX用データの設定(必ず最低3つ設定する必要がある。3つめはダミー)
	int[] indices = { 0, 1, 0 };

	//頂点データの設定(UVやINDEXのデータとの依存関係のため、最初に設定する必要がある。)
	mesh.vertices = lineList;
	//UVデータの設定
	mesh.uv = new Vector2[2];
	//INDEXの設定(第2引数がキモ)
	mesh.SetIndices(indices, MeshTopology.Lines, 0);

	//オブジェクト作成
	GameObject newGameobject = new GameObject(objectName);

	//MeshRenderコンポーネントを追加
	MeshRenderer meshRenderer = newGameobject.AddComponent<MeshRenderer>();
	//マテリアルを設定(Unityがデフォルトで用意している物を使う)
	meshRenderer.material = Resources.GetBuiltinResource<Material>("Sprites-Default.mat");
	//カラー設定
	meshRenderer.material.color = color;

	//メッシュフィルターにメッシュを設定
	MeshFilter meshFilter = newGameobject.AddComponent<MeshFilter>();
	meshFilter.mesh = mesh;

	return newGameobject;
}