Menu
CoddyTech

Iza la bandera

Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 32 de 85.

localPosition se puede leer y cambiar en cada fotograma, como position. Un elemento hijo que debería subir por su padre, como una cabina por una torre o una bandera por un mástil, se mueve a lo largo de localPosition y compara su altura local con la parte superior, así que funciona independientemente de dónde esté el padre:

if (transform.localPosition.y < 10)
{
    transform.localPosition += new Vector3(0, 2 * Time.deltaTime, 0);
}

En cambio, si se comparara con position.y, la parte superior se movería cada vez que el padre estuviera más arriba o más abajo.

challenge icon

Desafío

Intermedio

Sube la bandera por el mástil con la flecha hacia arriba.

  1. En Update(), escribe if (Input.GetKey(KeyCode.UpArrow) && transform.localPosition.y < 4).
  2. Dentro de esa instrucción, suma new Vector3(0, climb * Time.deltaTime, 0) a transform.localPosition.

Pulsa «Jugar» y mantén pulsada la flecha hacia arriba: la bandera sube hasta la parte superior del mástil y se detiene. Después, pulsa «Comprobar».

Pruébalo tú mismo

using UnityEngine;

public class Hoist : MonoBehaviour
{
    public float climb = 1f;

    void Start()
    {
        transform.localPosition = new Vector3(0.6f, 1, 0);
    }

    void Update()
    {
        // Mientras se mantenga pulsada la flecha hacia arriba, asciende hasta que la altura respecto a Ship sea 4
    }
}

Todas las lecciones de Fundamentos de scripting en Unity

Practica por tu cuenta: Playground de Unity