public void OnDrawGizmos()
    {
        if (!Application.isPlaying || show)
        {
            aiDriverController = gameObject.GetComponent("AIDriverController") as AIDriverController;
            aIMotorMapping = gameObject.GetComponent("AIMotorMapping") as AIMotorMapping;
            if (aiDriverController.useObstacleAvoidance && aIMotorMapping.flWheelMesh != null)
            {
                Vector3 viewPointLeft;
                Vector3 viewPointRight;
                Vector3 forwardDirection = aiDriverController.viewPoint.TransformDirection(Vector3.forward * aiDriverController.oADistance);

                //Vector3 centerPointL = transform.position + transform.TransformDirection(Vector3.left * aiDriverController.oASideOffset);
                //centerPointL.y = aiDriverController.viewPoint.position.y;

                //Vector3 centerPointR = transform.position + transform.TransformDirection(Vector3.right * aiDriverController.oASideOffset);
                //centerPointR.y = aiDriverController.viewPoint.position.y;

                viewPointLeft = aiDriverController.viewPoint.transform.position;
                viewPointRight = aiDriverController.viewPoint.transform.position;
                viewPointLeft += aiDriverController.viewPoint.TransformDirection((Vector3.right * aIMotorMapping.flWheelMesh.localPosition.x));
                viewPointRight += aiDriverController.viewPoint.TransformDirection((Vector3.right * aIMotorMapping.frWheelMesh.localPosition.x));
                float obstacleAvoidanceWidth = aiDriverController.oAWidth;

                Vector3 leftDirection = aiDriverController.viewPoint.TransformDirection((Vector3.left * obstacleAvoidanceWidth) + (Vector3.forward * aiDriverController.oADistance));
                Vector3 rightDirection = aiDriverController.viewPoint.TransformDirection((Vector3.right * obstacleAvoidanceWidth) + (Vector3.forward * aiDriverController.oADistance));

                Vector3 leftSide = aiDriverController.viewPoint.TransformDirection(Vector3.left * aiDriverController.oASideDistance);
                Vector3 rightSide = aiDriverController.viewPoint.TransformDirection(Vector3.right * aiDriverController.oASideDistance);

                Debug.DrawRay(viewPointLeft, leftDirection, Color.cyan);
                Debug.DrawRay(viewPointRight, rightDirection, Color.cyan);
                Debug.DrawRay(aiDriverController.viewPoint.position, forwardDirection, Color.green);
                Debug.DrawRay(viewPointLeft, forwardDirection, Color.green);
                Debug.DrawRay(viewPointRight, forwardDirection, Color.green);
                //Debug.DrawRay(centerPointL, leftSide, Color.magenta);
                //Debug.DrawRay(centerPointR, rightSide, Color.magenta);

                //----------------------------------------
                //leftFront
                Vector3 leftFrontSidePos = transform.position + transform.TransformDirection(Vector3.left * aiDriverController.oASideOffset);
                leftFrontSidePos.y = aiDriverController.viewPoint.position.y;
                leftFrontSidePos += transform.TransformDirection(Vector3.forward * aiDriverController.oASideFromMid);
                Debug.DrawRay(leftFrontSidePos, leftSide, Color.magenta);

                //leftRear
                Vector3 leftRearSidePos = transform.position + transform.TransformDirection(Vector3.left * aiDriverController.oASideOffset);
                leftRearSidePos.y = aiDriverController.viewPoint.position.y;
                leftRearSidePos -= transform.TransformDirection(Vector3.forward * aiDriverController.oASideFromMid);
                Debug.DrawRay(leftRearSidePos, leftSide, Color.magenta);

                //rightFront
                Vector3 rightFrontSidePos = transform.position + transform.TransformDirection(Vector3.right * aiDriverController.oASideOffset);
                rightFrontSidePos.y = aiDriverController.viewPoint.position.y;
                rightFrontSidePos += transform.TransformDirection(Vector3.forward * aiDriverController.oASideFromMid);
                Debug.DrawRay(rightFrontSidePos, rightSide, Color.magenta);

                //rightRear
                Vector3 rightRearSidePos = transform.position + transform.TransformDirection(Vector3.right * aiDriverController.oASideOffset);
                rightRearSidePos.y = aiDriverController.viewPoint.position.y;
                rightRearSidePos -= transform.TransformDirection(Vector3.forward * aiDriverController.oASideFromMid);
                Debug.DrawRay(rightRearSidePos, rightSide, Color.magenta);
            }
        }
    }
    void Awake()
    {
        //2011-12-27-B
        //GetWaypointNames();
        //FillWaypointList();
        //2011-12-27-E

        aiRespawnControllerScript = gameObject.GetComponent<AIRespawnController>();
        aiPreMotor = GetComponent<AIMotorMapping>();
        flWheel = aiPreMotor.flWheelMesh;
        frWheel = aiPreMotor.frWheelMesh;
    }