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(); } private void Start() { if (zoneMap == null) return; if (onMinimapGenerated == null) return; if (!zoneMap.isProceduralMap) GenerateMinimap(); } public void GenerateMinimap() { GenerateMesh(); onMinimapGenerated.Raise(); } public void UpdateMinimap() { StartCoroutine(DelayedUpdateMinimap()); } IEnumerator DelayedUpdateMinimap() { yield return new WaitForSeconds(1f); GenerateMinimap(); } 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; } }