private void CalculateDistanceToWaypoint() { Vector3 position = transform.position; float distance = Mathf.Infinity; for (int i = 0; i < Nodes.Count; i++) { Vector3 difference = Nodes[i].transform.position - position; float currentDistance = difference.magnitude; if (currentDistance < distance) { if (i + DistanceOffset > Nodes.Count - 1) { CurrentWaypoint = Nodes[Nodes.Count - 1]; AnimalAI.SetTarget(CurrentWaypoint.gameObject); if (currentDistance <= 2 && CurrentWaypoint.Type == WaypointType.Finish) { Debug.Log("Finish"); AnimalAI.Stop(); } } else { CurrentWaypoint = Nodes[i + DistanceOffset]; AnimalAI.SetTarget(CurrentWaypoint.gameObject); distance = currentDistance; } } } }
public void SetClosestWaypoint() { RaycastHit hit; if (Physics.SphereCast(transform.position, sphereCastRadius, transform.forward, out hit, 100f, layerMask, QueryTriggerInteraction.UseGlobal)) { if (hit.collider.gameObject.GetComponent <MWayPoint>()) { animalAIControl.SetTarget(hit.collider.gameObject.transform, true); animalAIControl.enabled = true; Debug.Log($"{name} closest Waypoint is: {hit.collider.name}"); } } else { Debug.Log($"EnemyAiTest: {name} can't find closest waypoint, hit: {hit.collider.name}"); } }
public void SetClosestWaypoint() // Sets target point for AnimalAi script { RaycastHit hit; Debug.DrawRay(playerWagonPosition.position, -playerWagonPosition.forward * sphereCastRadius, Color.magenta, 10f); if (Physics.SphereCast(playerWagonPosition.position, sphereCastRadius, -playerWagonPosition.forward, out hit, 100f, layerMask, QueryTriggerInteraction.UseGlobal)) { if (hit.collider.gameObject.GetComponent <MWayPoint>()) { MAnimalAI.SetTarget(hit.collider.gameObject.transform, true); MAnimalAI.enabled = true; Debug.Log($"Player Controller: {name} closest Waypoint is: {hit.collider.name}"); } else { Debug.Log($"Player Controller: {name} can't find closest waypoint, hit: {hit.collider.name}"); } } else { Debug.Log($"Player Controller: Didn't hit anything!"); } }
public void Init(MWayPoint wayPoint, Camera camera, LevelContainer _levelContainer) { PlayerHorseAI.SetTarget(wayPoint.transform, true); PlayerShoot.Init(_levelContainer, camera); }
public void StartHorse() { AnimalAI.SetTarget(Player.transform, false); AnimalAI.StoppingDistance = 10f; }
private void Start() { MAnimalAIControl.SetTarget(Waypoints[0]); }