Para resetear la posición del coche en Unity cuando se sale de la carretera, puedes utilizar el siguiente código:
Código:
// Devuelve la posición del coche en el momento en el que se sale de la carretera
Vector3 posiciónSalida = coche.transform.position;
// Si el coche se sale de la carretera
if (coche.transform.position.x < -5) {
// Restaura la posición del coche a la posición en la que se salió
coche.transform.position = posiciónSalida;
}
Este código funciona de la siguiente manera:
En primer lugar, se utiliza el método transform.position para obtener la posición actual del coche.
A continuación, se comprueba si la posición del coche es inferior a -5 en el eje X. Esto significa que el coche se ha salido de la carretera por la izquierda.
Si el coche se ha salido de la carretera, se utiliza el método transform.position para restaurar la posición del coche a la posición en la que se salió.
Para evitar que el coche salga torcido o fuera de la carretera, puedes utilizar el siguiente código:
Código:
// Devuelve la dirección del coche en el momento en el que se sale de la carretera
Quaternion direcciónSalida = coche.transform.rotation;
// Si el coche se sale de la carretera
if (coche.transform.position.x < -5) {
// Restaura la posición del coche a la posición en la que se salió
coche.transform.position = posiciónSalida;
// Restaura la dirección del coche a la dirección en la que se salió
coche.transform.rotation = direcciónSalida;
}
Este código funciona de la siguiente manera:
En primer lugar, se utiliza el método transform.rotation para obtener la dirección actual del coche.
A continuación, se comprueba si la posición del coche es inferior a -5 en el eje X. Esto significa que el coche se ha salido de la carretera por la izquierda.
Si el coche se ha salido de la carretera, se utiliza el método transform.position para restaurar la posición del coche a la posición en la que se salió.
A continuación, se utiliza el método transform.rotation para restaurar la dirección del coche a la dirección en la que se salió.
Por último, para que el coche se resetee cuando pulses una tecla, puedes utilizar el siguiente código:
Código:
// Devuelve la posición del coche en el momento en el que se sale de la carretera
Vector3 posiciónSalida = coche.transform.position;
// Devuelve la dirección del coche en el momento en el que se sale de la carretera
Quaternion direcciónSalida = coche.transform.rotation;
// Escucha el evento de pulsación de la tecla "R"
void OnKeyPressed(KeyCode key) {
// Si se ha pulsado la tecla "R"
if (key == KeyCode.R) {
// Restaura la posición del coche a la posición en la que se salió
coche.transform.position = posiciónSalida;
// Restaura la dirección del coche a la dirección en la que se salió
coche.transform.rotation = direcciónSalida;
}
}
Este código funciona de la siguiente manera:
En primer lugar, se declara una variable para almacenar la posición del coche en el momento en el que se sale de la carretera.
A continuación, se declara una variable para almacenar la dirección del coche en el momento en el que se sale de la carretera.
Después, se crea un evento de pulsación de la tecla "R".
En el evento de pulsación de la tecla "R", se comprueba si se ha pulsado la tecla.
Si se ha pulsado la tecla, se utiliza el código anterior para restaurar la posición y la dirección del coche.
Espero que esto te ayude.
Un saludo.