(Unity)Meshクラスを使って、Box状のラインを描く方法

(必要なデータ)

(1)頂点

 

(2)頂点の番号(「どの番号」と「どの番号」を結ぶか)


(スクリプト)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[ExecuteAlways]
public class CubeLine : MonoBehaviour
{
    private void Start()
    {
        var mesh = new Mesh();

        // 頂点のデータを配列で取得
        var vertices = new[]
        {
            new Vector3(0,0,0),
            new Vector3(5,0,0),
            new Vector3(5,0,5),
            new Vector3(0,0,5),

            new Vector3(0,5,0),
            new Vector3(5,5,0),
            new Vector3(5,5,5),
            new Vector3(0,5,5)
        };

        mesh.SetVertices(vertices);

        // 頂点同士を結ぶデータ
        var indices = new[]
        {
            0,1,1,2,2,3,3,0, // 底面

            4,5,5,6,6,7,7,4, // 上面

            // 柱
            0,4,
            1,5,
            2,6,
            3,7
        };

        // MeshTopology・・・>メッシュの描画方法
        mesh.SetIndices(indices, MeshTopology.Lines, 0);

        GetComponent<MeshFilter>().mesh = mesh;
    }
}

(実行結果)