Giving your AI sight in Unity
There are a few ways of allowing AI to “see” in Unity. We’ll go over using Raycasts and simple box colliders here.
The easiest is to simply attach a game object (with a collider) to your AI and check if there is a collision between the game object and the player. We can use a custom shape like a cone or just simply add a cube, remove the Mesh Renderer and scale the collider:
With the collider selected, enable the “Is Trigger” option and make sure either the player or this collider also have a Rigidbody component attached:
At this point we just need a simple script that checks for the OnTriggerEnter event that looks for interaction with the player:
Another other option is with a Raycast. Here we can better visualize ‘line of sight’ from the perspective of the AI.
In order to first get a feel for the position and length of the ray, we will create an empty game object and use a Debug.DrawRay() statement:
The result in the Scene view will look something like this:
Now that we are happy with the length and rotation of the ray, we need to implement the code that will detect the player: