KITASENJU DESIGN BLOG

memo, html, javascript, unity

Draw Cube with Line

f:id:kitasenjudesign:20211229224810p:plain

関連:https://kitasenjudesign.hatenablog.com/entry/2021/11/13/133126

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

public class LineMesh : MonoBehaviour
{

    [SerializeField] private MeshFilter _meshFilter;
    [SerializeField] private Vector3[] _positions;
    private Mesh _mesh;

    void Start()
    {
        _mesh = new Mesh();


        var a1 = new Vector3(1,1,1);
        var b1 = new Vector3(-1,1,1);
        var c1 = new Vector3(-1,1,-1);
        var d1 = new Vector3(1,1,-1);

        var a0 = new Vector3(1,-1,1);
        var b0 = new Vector3(-1,-1,1);
        var c0 = new Vector3(-1,-1,-1);
        var d0 = new Vector3(1,-1,-1);



        var pos = new List<Vector3>();
        pos.Add(a1); pos.Add(b1);
        pos.Add(b1); pos.Add(c1);
        pos.Add(c1); pos.Add(d1);
        pos.Add(d1); pos.Add(a1);

        pos.Add(a0); pos.Add(b0);
        pos.Add(b0); pos.Add(c0);
        pos.Add(c0); pos.Add(d0);
        pos.Add(d0); pos.Add(a0);

        pos.Add(a0); pos.Add(a1);
        pos.Add(b0); pos.Add(b1);
        pos.Add(c0); pos.Add(c1);
        pos.Add(d0); pos.Add(d1);


        _positions = pos.ToArray();
        
        int[] indices = new int[_positions.Length];
        for(int i=0;i<_positions.Length;i++){
            indices[i] = i;
        }

        _mesh.vertices = _positions;
        _meshFilter.mesh = _mesh;       
         
        _mesh.SetIndices(indices, MeshTopology.Lines, 0);
        
    }

    // Update is called once per frame
    void Update()
    {

        

    }
}
"FOOTER"