Golf de canicas
Parte de la sección Física y jugabilidad del Journey de Unity de Coddy. Lección 62 de 63.
Golf con una canica en un pequeño campo verde. La canica empieza en el tee: apúntala con las flechas, mantén pulsada la barra espaciadora para acumular potencia y suéltala para golpear. Rueda, rebota en los bordes acolchados y en el bloque del centro, y va perdiendo velocidad; cuando va lo bastante despacio, se detiene por completo. Solo entonces puedes volver a golpear. Una canica que rueda lentamente hasta el hoyo cae dentro; una que llega demasiado rápido pasa de largo. Cuantos menos golpes, mejor.
Escribe dos scripts: Golf en la canica y Hole en el hoyo.
Desafío
DifícilEl Inspector asigna a Golf pointer (la pequeña bola amarilla), aimSpeed (90), chargeRate (4), maxPower (6) y stopSpeed (0.3). La masa de la canica es 0.5.
- La puntería es un ángulo alrededor del eje y, 0 al inicio (directamente hacia delante, +z). La flecha derecha la gira a la derecha y la flecha izquierda a la izquierda, a
aimSpeedgrados por segundo. En cada fotograma, coloca el puntero a 1 unidad de la canica en la dirección de la puntería. - La canica está en reposo mientras su velocidad sea inferior a
stopSpeed. En cada paso de física, una canica en reposo se detiene por completo: velocidad y velocidad angular cero. - Solo mientras la canica está en reposo: mantener pulsada la barra espaciadora acumula potencia a
chargeRatepor segundo, sin superar nuncamaxPower, y soltar la barra espaciadora golpea la canica con un Impulse de esa potencia en la dirección de la puntería. La potencia vuelve después a 0, y unint strokespúblico aumenta en 1 y se registra comoStroke 1.
El Inspector asigna a Hole sinkSpeed (3).
- Cuando la canica (el objeto con el script
Golf) entra en el hoyo más despacio quesinkSpeed, registra sus golpes comoIn the cup in 2 strokes!y desactiva la canica. Una canica más rápida pasa rodando.
Pulsa Play y mete la canica en el hoyo con el menor número de golpes que puedas; después, pulsa Check.
Pruébalo tú mismo
using UnityEngine;
public class Golf : MonoBehaviour
{
public int strokes = 0;
[SerializeField] private Transform pointer;
[SerializeField] private float aimSpeed = 90f;
[SerializeField] private float chargeRate = 4f;
[SerializeField] private float maxPower = 6f;
[SerializeField] private float stopSpeed = 0.3f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
// apunta con las flechas, carga con Space, dispara al soltarla y detente cuando vayas despacio
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Física y jugabilidad
1Cuerpo rígido
Gravedad y masaEmpujar con AddForceSaltar con un impulsoFixedUpdate para físicaVelocidadCuerpos cinemáticosRepaso: plataforma de lanzamiento2Colisiones
OnCollisionEnter¿Qué golpeé?Romper al impactarDe pie sobre el sueloRebote y fricciónFormas de los collidersRepaso: muro destructible5Proyecto: Carrera de monedas
La bola rodanteMonedas para recoger