Right now I have everything except the sending out raycasts at different angles. I can best describe it as wanting to rotate the ray with the pivot at the enemy.
var ray = new Ray(transform.position, transform.TransformDirection(Vector3.forward));
Debug.DrawLine(ray.origin, ray.origin + ray.direction * dist, Color.blue);
The above code will draw the white line from the above image, but how can I offset the directions by like 15 degrees, for example? Is there something different you would recommend?
A raycast is “fired” through a point. In your case, you’re firing it through “in front of me,” which makes it go directly ahead. A really cheesy way to angle a ray is to fire it through a point off to the side. The length isn’t important. In this case, 4 ahead and 1 left will hit the wall 1 unit left (whatever angle that is):
Vector3 leftSome = transform.forward*4 - transform.right*1;
... rayCast(transform.position, leftSome ..... )
Vector leftMore = transform.forward*4 - transform.right*2.5f;
// another raycast through left more
It won’t give you an extra angle, but close enough (of course, 1 forward and 1 left will be 45 degrees.)
If you really want an exact angle, you can rotate transform.forward using a Quaternion: