CarControl.AI_Update C# (CSharp) Method

AI_Update() public method

public AI_Update ( ) : void
return void
    void AI_Update()
    {
        //avoidObject = GetComponent<ObstacleAvoid> ().avoidObstacle;
        //angleObject = GetComponent<ObstacleAvoid> ().angleObstacle;
        //posObject = GetComponent<ObstacleAvoid> ().obstaclePosition;
        leftObj = GetComponent<ObstacleAvoid> ().leftObs;
        centerObj = GetComponent<ObstacleAvoid> ().centerObs;
        rightObj = GetComponent <ObstacleAvoid> ().rightObs;
        LeftDis = GetComponent <ObstacleAvoid> ().LeftDis;
        RightDis = GetComponent<ObstacleAvoid> ().RightDis;
        CenterDis = GetComponent <ObstacleAvoid> ().CenterDis;
        rb.drag = rb.velocity.magnitude / 250;

        //Check if the next path segment needs to be calculated in a thread
        if (pathCalculated == false && jobInProgress == false) {
            //trigger thread job for this car to obtain the next set of waypoints
            Node pathStartNode;
            if (currentThreadJob.destinationNode == PathPlanningDataStructures.graph.endNode) {
                pathStartNode = startNode;
            } else {
                pathStartNode = currentThreadJob.destinationNode;
            }
            currentThreadJob = new DynamicPathThreadJob(pathStartNode,
                PathPlanningDataStructures.graph.endNode);
            currentThreadJob.Start();
            jobInProgress = true;
        }
        //Check if in progress thread has completed the path calculation
        if (jobInProgress) {
            if (currentThreadJob.isFinished()) {
                nextWayPoints = currentThreadJob.getPathWayPoints();
                pathCalculated = true;
                jobInProgress = false;
                Debug.Log ("Finished next thread job. Size: " + nextWayPoints.Count);
            }
        }
        GoToWayPoint ();

        input_rpm = (GetCollider (0).rpm + GetCollider (1).rpm) / 2 * GearRatio [CurrGear];
        ShiftGears ();

        GetCollider (0).motorTorque = engineTorque / GearRatio [CurrGear] * input_torque;
        GetCollider (1).motorTorque = engineTorque / GearRatio [CurrGear] * input_torque;
        GetCollider (2).motorTorque = engineTorque / GearRatio [CurrGear] * input_torque;
        GetCollider (3).motorTorque = engineTorque / GearRatio [CurrGear] * input_torque;
        GetCollider (0).brakeTorque = brake_power;
        GetCollider (1).brakeTorque = brake_power;
        GetCollider (2).brakeTorque = brake_power;
        GetCollider (3).brakeTorque = brake_power;

        GetCollider (0).steerAngle = maxSteer * input_steer;
        GetCollider (1).steerAngle = maxSteer * input_steer;
        //print (avoidObject);
    }