Menu
CoddyTech

Atrápala

Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 38 de 67.

challenge icon

Desafío

Intermedio

Atrapa la estrella. Añade una score que empiece en 0. Cuando la estrella esté a menos de 1 unidad del receptor (mídelo con Vector3.Distance), la estrella se atrapa:

  • suma 1 a score,
  • registra Caught! Score: 1, con la nueva puntuación,
  • mueve la estrella de nuevo hacia arriba hasta y = 6, conservando su x y z, para que vuelva a caer.

Por ahora, una estrella que no acierte sigue cayendo. Conserva todo lo de los pasos anteriores.

Pruébalo tú mismo

using UnityEngine;

public class Catcher : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private Transform star;
    [SerializeField] private float fallSpeed = 3f;

    void Update()
    {
        float x = transform.position.x;
        if (Input.GetKey(KeyCode.RightArrow))
        {
            x += speed * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            x -= speed * Time.deltaTime;
        }
        x = Mathf.Clamp(x, -4f, 4f);
        transform.position = new Vector3(x, transform.position.y, transform.position.z);

        star.position += Vector3.down * fallSpeed * Time.deltaTime;
    }
}

Todas las lecciones de Fundamentos de scripting en Unity