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; }