Menu
CoddyTech

Içar a bandeira

Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 32 de 85.

localPosition pode ser lido e alterado a cada quadro, assim como position. Um objeto filho que deve subir pelo seu objeto pai, como uma cabine subindo uma torre ou uma bandeira subindo um mastro, se move ao longo de localPosition e compara sua altura local com o topo, então funciona onde quer que o objeto pai esteja:

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

Se, em vez disso, você comparar com position.y, o topo se moveria sempre que o objeto pai estivesse mais alto ou mais baixo.

challenge icon

Desafio

Médio

Erga a bandeira pelo mastro usando a seta para cima.

  1. Em Update(), escreva if (Input.GetKey(KeyCode.UpArrow) && transform.localPosition.y < 4).
  2. Dentro dele, adicione new Vector3(0, climb * Time.deltaTime, 0) a transform.localPosition.

Pressione “Jogar” e mantenha pressionada a seta para cima: a bandeira sobe até o topo do mastro e para. Depois, “Verificar”.

Experimente você mesmo

using UnityEngine;

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

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

    void Update()
    {
        // Enquanto a seta para cima estiver pressionada, suba até que a altura em relação à Ship seja 4
    }
}

Todas as lições de Fundamentos de Scripting no Unity

Pratique por conta própria: Playground de Unity