- Home /
Question by
LAiKA787SV · Feb 22, 2013 at 10:30 AM ·
raycastinputairacingspherecast
Car AI help
hello everybody, sorry for asking too often. I have a problem on Andrew Gotow's Car AI. The Problem is The AI did not avoid player / car in front of them or they just go ahead and hit the player / car in front of them. When hit a car or any obstacle, They stop accelerating or stop working.
Please help me. I can't figure it out how to make the AI shouldn't hit the obstacle
this is the code i use. Thanks for any help
function NavigateTowardsWaypoint(){// Runs in Update function
var relativeWaypointPosition : Vector3 = transform.InverseTransformPoint(Vector3(waypoints[currentWaypoint].position.x,transform.position.y,waypoints[currentWaypoint].position.z));
var hit : RaycastHit;
if(Physics.SphereCast(transform.position,30,transform.forward,hit,10)){
if(hit.transform != this.transform){
//relativeWaypointPosition.x *= hit.normal.x;
if(hit.collider.tag == "Player" || hit.collider.tag == "Opponent" || hit.collider.tag == "Environtment"){
relativeWaypointPosition.x *= -hit.normal.x;//-hit.distance / 3;
hit.rigidbody.AddExplosionForce(10000,transform.position,30);
//Mathf.Atan2(relativeWaypointPosition.x,relativeWaypointPosition.z);
print(gameObject.name + " Collides with "+ hit.collider.name);
}
}
}
//inputSteer = relativeWaypointPosition.x / relativeWaypointPosition.magnitude;
inputSteer = Mathf.Atan2(relativeWaypointPosition.x,relativeWaypointPosition.z);
// now we do the same for torque, but make sure that it doesn't apply any engine torque when going around a sharp turn...
if ( Mathf.Abs( inputSteer ) < 0.5 ) {
inputTorque = relativeWaypointPosition.z / relativeWaypointPosition.magnitude - Mathf.Abs( inputSteer );
}else{
inputTorque = 0.0;
}
// this just checks if the car's position is near enough to a waypoint to count as passing it, if it is, then change the target waypoint to the
// next in the list.
if ( relativeWaypointPosition.magnitude < magnitudor) {
currentWaypoint ++;
if ( currentWaypoint >= waypoints.length ) {
currentWaypoint = 0;
}
}
}
Comment
Your answer
Follow this Question
Related Questions
Car AI Avoiding Obstacle 0 Answers
How To Add AI To Car/Racer? 4 Answers
Make AI attack on sight, otherwise go to another target. 1 Answer
Not sure what this error means? 1 Answer
SphereCast misses but RayCast and OverlapSphere don't 1 Answer