- 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