- Home /
racing game raycast problem
Hi all,
In my racing game, the AI of the opponents follow waypoints along the track, but i'm having problems when they get closer to each other and begin to crash. So i came up with the idea to use raycast to see if there is any car between this car and the next waypoint or in the Vector3.forward and slow down a bit so they don't crash.
RaycastHit hit;
if (carCollider.Raycast(new Ray(carCollider.transform.position, Vector3.forward), out hit,4000.0f))
{
Debug.Log("raycast at "+hit.transform.name);
if (hit.transform.tag == "car" || hit.transform.tag == "Player")
{
Debug.Log("There's a car ahead: "+hit.transform.name);
}
}
With this code, nothing is being logged by the debugger. What am i missing ? Call cars have colliders and are tagged 'car' or 'Player'. Any idea what's happening or an alternative so they wont bump on each other ?
Answer by duck · Feb 11, 2010 at 01:32 PM
I think the problem is that you're calling 'Raycast' on your carCollider. This means that the raycast would only detect your own car's collider. Since the ray is starting inside that collider, it won't detect it at all.
You're using this version of raycast: Collider.Raycast
When I think instead you probably want: Physics.Raycast (which detects collisions against every collider in the scene, not just the collider on which it was called).
Answer by efge · Feb 11, 2010 at 02:32 PM
Instead of asking the physics engine you could calculate the distance between the AI cars.
Reference + Example
Or use sphere colliders for each AI car as triggers for slowing down.
Interesting approach, but i was wondering if i put two parallels raycasts (left and right side of the car) i could decide if i brake, turn right or left. $$anonymous$$aybe i'm not following the best approach, but i dont see how those two suggestions can handle what i want. But thanks anyway. ;)
Your answer
Follow this Question
Related Questions
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
Have to press Fire1 button twice to run if statement? 1 Answer
Using different paricle emitters depending on the tag of the object raycast hits? 1 Answer
Contextual Rose Menu not determining correct context. 2 Answers
Help with key code!! 0 Answers