55 lines
1.1 KiB
C#

using UnityEngine;
using System.Collections;
using UnityEngine.AI;
[ExecuteInEditMode]
public class MinimapMesh : MonoBehaviour
{
[SerializeField] private GameEvent onMinimapGenerated;
[SerializeField] private ZoneData zoneMap;
MeshFilter filter;
NavMeshTriangulation triangles;
Mesh mesh;
private void Awake()
{
filter = GetComponent<MeshFilter>();
}
private void Start()
{
if (zoneMap == null) return;
if (onMinimapGenerated == null) return;
if (!zoneMap.isProceduralMap)
GenerateMinimap();
}
public void GenerateMinimap()
{
GenerateMesh();
onMinimapGenerated.Raise();
}
private void GenerateMesh()
{
// Getnavmesh data
triangles = NavMesh.CalculateTriangulation();
// Create new mesh with data
if (mesh == null)
mesh = new Mesh();
mesh.vertices = triangles.vertices;
mesh.triangles = triangles.indices;
// set to mesh filter
filter.mesh = mesh;
}
}