Example #1
0
        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;
                    }
                }
            }
        }
Example #2
0
    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}");
        }
    }
Example #3
0
    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!");
        }
    }
Example #4
0
 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]);
 }