KITASENJU DESIGN BLOG

memo, html, javascript, unity

meshをwireframe化する

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

public class LineMesh : MonoBehaviour
{

    [SerializeField] private int[] _triangles;
    // Start is called before the first frame update
    void Start()
    {
        MeshFilter meshFilter = GetComponent<MeshFilter>();
        MeshTopology topo = meshFilter.mesh.GetTopology(0);
        Debug.Log(topo);  //"triangles" と出力される

        _triangles = meshFilter.mesh.triangles;
        meshFilter.mesh.SetIndices(MakeIndices(), MeshTopology.Lines, 0);

    }

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

    public int[] MakeIndices()
    {
        int[] indices = new int[2 * _triangles.Length];
        int i = 0;
        for( int t = 0; t < _triangles.Length; t+=3 )
        {
            indices[i++] = _triangles[t];        //start
            indices[i++] = _triangles[t + 1];   //end
            indices[i++] = _triangles[t + 1];   //start
            indices[i++] = _triangles[t + 2];   //end
            indices[i++] = _triangles[t + 2];   //start
            indices[i++] = _triangles[t];        //end
        }
        return indices;
    }


}

"FOOTER"