55 lines
1.0 KiB
C#
55 lines
1.0 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
using UnityEngine.AI;
|
|
|
|
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
|
|
|
|
mesh = new Mesh
|
|
{
|
|
vertices = triangles.vertices,
|
|
triangles = triangles.indices
|
|
};
|
|
|
|
|
|
// set to mesh filter
|
|
filter.mesh = mesh;
|
|
}
|
|
} |