Question by 
               PaincideStudio · Feb 17, 2018 at 05:40 PM · 
                raycastscript.airaycasting  
              
 
              AI Raycasting Question (Almost there!!!)
Okay. I'm almost there. I made a script and the AI draw ray perfectly. But it doesn't print at a console.. Here is my script.
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.AI;
 
 public class BeuBaeMovement : MonoBehaviour {
 
     public GameObject Player;
     NavMeshAgent navMeshAgent;
     NavMeshPath path;
     public float timeForNewPath;
     bool inCoRoutine;
     Vector3 target;
     bool validPath;
     public Animator anim;
     float distance = 100.0f;
     float arc = 45.0f;
 
     void Start()
     {
         navMeshAgent = GetComponent<NavMeshAgent> ();
         path = new NavMeshPath ();
     }
 
     void Update()
     {
         if (!inCoRoutine)
             StartCoroutine (DoSomething ());
         if (navMeshAgent.velocity.magnitude > 1.0f) 
         {
             anim.SetBool ("IsWalking", true);
         } 
         else
         {
             anim.SetBool ("IsWalking", false);
         }
 
         if(Vector3.Distance(transform.position, Player.transform.position) < distance)
         {
             //player is within distance
             Vector3 playerDirection = (Player.transform.position - transform.position).normalized;
             if(Vector3.Dot(transform.forward, playerDirection) > 0 && Vector3.Angle(transform.forward, playerDirection) <arc)
             {
                 //player is ahead of AI and in AI fov
                 Debug.DrawRay(transform.position, transform.position + playerDirection * distance, Color.green);
                 RaycastHit hit;
                 if(Physics.Raycast(transform.position, transform.position + playerDirection,out hit,distance))
                 {
                     if(hit.collider.name == "FPSController")
                     {
                         Debug.Log("Hello World");
                     }
                 }
             }
         }
 
             
     }
 
     Vector3 getNewRandomPosition()
     {
         float x = Random.Range (-120, 120);
         float z = Random.Range (-120, 120);
 
         Vector3 pos = new Vector3 (x, 0, z);
         return pos;
     }
 
     IEnumerator DoSomething()
     {
         inCoRoutine = true;
         yield return new WaitForSeconds (timeForNewPath);
         GetNewPath ();
         validPath = navMeshAgent.CalculatePath (target,path);
 
 
         while (!validPath) 
         {
             yield return new WaitForSeconds (0.01f);
             GetNewPath ();
             validPath = navMeshAgent.CalculatePath (target,path);
         }
         inCoRoutine = false;
 
     }
 
     void GetNewPath()
     {
         target = getNewRandomPosition ();
         navMeshAgent.SetDestination (target);
 
     }
 }
 
 
 
 
              
               Comment
              
 
               
              Your answer
 
             Follow this Question
Related Questions
Enemy walking off platform in Unity2D 0 Answers
AI Raycasting 0 Answers
How to actually make raycast hit colliders it s starting from? 1 Answer