Raycast from NPC to player problem
Hi there,
Im working on a simple fps game in unity and I ran into a raycast problem with the enemy AI. I am trying to draw a raycast from the enemy's position towards the players position. I use the following code for this:
var direction = player.transform.position - transform.position;
ray.direction = direction;
ray.origin = transform.position;
if(Physics.Raycast(ray, hit, 18))
{
Debug.DrawLine(ray.origin, hit.transform.position, Color.red, 18);
if(hit.collider.tag == "Player")
{
playerHp.playerHealth -= 10 * Time.deltaTime;
}
}
The red line im drawing using Debug.Drawline goes from the enemys position towards the (0,0,0) point of the scene. Why is this happening even tho I calculated the direction the ray should be going and passing it on using ray.direction.
@Xetros The direction should be: var direction = (player.transform.position - transform.position).normalized;
EDIT: Oh, btw, the reason for your drawLine is probably that it hit's the terrain, which position is probably 0,0,0.
Answer by Xetros · Mar 08, 2016 at 07:40 PM
After being stuck on this bug for hours I finally found the solution. The base offset of my nevmeshagent was interfering with the position from the NPC. I managed to fix this by rebaking my navmesh and resetting the base offset.
Your answer
![](https://koobas.hobune.stream/wayback/20220612071037im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
AI Raycasting Question (Almost there!!!) 0 Answers
Raycast Enemy AI shooting script 1 Answer
How to calculate car braking force (using wheelcollider)? 0 Answers
Quaternion and Direction for DrawRay(Make Object Look At Its Feet, Watch where its going...) 2 Answers
Foreach working very strange 0 Answers