Net.Like.Xue.Tokyo/Assets/Plugins/MeshCombineStudio/Scripts/Mesh/VisualizeMesh.cs

41 lines
1.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VisualizeMesh : MonoBehaviour
{
public float sphereRadius = 0.05f;
MeshFilter mf;
Mesh m;
void OnDrawGizmosSelected()
{
if (!mf) mf = GetComponent<MeshFilter>();
if (!mf) return;
if (!m) m = mf.sharedMesh;
if (!m) return;
Vector3[] verts = m.vertices;
Vector3[] normals = m.normals;
Vector4[] tangents = m.tangents;
Matrix4x4 mt = transform.localToWorldMatrix;
Matrix4x4 mn = mt.inverse.transpose;
for (int i = 0; i < verts.Length; i++)
{
Gizmos.color = Color.green;
Vector3 pos = mt.MultiplyPoint3x4(verts[i]);
Gizmos.DrawSphere(pos, sphereRadius);
Gizmos.color = Color.blue;
Gizmos.DrawLine(pos, pos + mn.MultiplyVector(normals[i]) * 0.5f);
Gizmos.color = Color.red;
Gizmos.DrawLine(pos, pos + mt.MultiplyVector(new Vector3(tangents[i].x, tangents[i].y, tangents[i].z)) * 0.5f);
}
}
}