using System.Linq; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; [RequireComponent(typeof(NavMeshAgent))] public class MovementController : MonoBehaviour { public NavPoint currentPosition { get; set; } [SerializeField] private NavMeshAgent navMeshAgent; private void Start() { navMeshAgent.speed = SettingsReader.Instance.GetSettings.movementSpeed; } public void MoveToRandomPoint() { Debug.Log(MapManager.navPoints == null); goToNextNavPoint(MapManager.navPoints[Random.Range(0, MapManager.navPoints.Count)]); } public List getPointsCandidate() { return MapManager.navPoints .Where(point => (currentPosition.position - point.position).magnitude < SettingsReader.Instance.GetSettings.movementSpeed) .ToList(); } public void goToNextNavPoint(NavPoint destination) => navMeshAgent.SetDestination(destination.position); }