Menu
CoddyTech

Issare la bandiera

Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 32 di 85.

localPosition può essere letto e modificato a ogni frame, come position. Un figlio che dovrebbe salire lungo il suo genitore, come una cabina su una torre o una bandiera su un albero, si muove lungo localPosition e confronta la propria altezza locale con la cima, così funziona ovunque si trovi il genitore:

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

Se invece si confrontasse con position.y, la cima si sposterebbe ogni volta che il genitore si trova più in alto o più in basso.

challenge icon

Sfida

Medio

Issa la bandiera sull'asta con la freccia verso l'alto.

  1. In Update(), scrivi if (Input.GetKey(KeyCode.UpArrow) && transform.localPosition.y < 4).
  2. Al suo interno, aggiungi new Vector3(0, climb * Time.deltaTime, 0) a transform.localPosition.

Premi «Gioca» e tieni premuta la freccia verso l'alto: la bandiera sale fino alla cima dell'asta e si ferma. Poi premi «Verifica».

Provalo tu

using UnityEngine;

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

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

    void Update()
    {
        // Finché la freccia su è premuta, sali fino a raggiungere un'altezza di 4 rispetto alla Ship
    }
}

Tutte le lezioni di Fondamenti di scripting in Unity

Esercitati da solo: Playground Unity