メソッド化しておいた。
/// <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; }