Menu
CoddyTech

Alcance do Canhão

Parte da seção Física e Jogabilidade do Journey de Unity da Coddy. Lição 66 de 71.

Um canhão fica em uma extremidade de um campo de tiro, e três alvos deslizam de um lado para o outro pelo campo, a diferentes distâncias. Você inclina o cano para cima e para baixo para alcançar cada distância e calcula o momento de cada disparo para que ele aconteça quando um alvo cruzar a linha de tiro. Uma bola que acerta um alvo o derruba e é consumida; qualquer outra coisa que colida com um alvo não o afeta. Os alvos são corpos cinemáticos, então os impactos nunca os empurram, e o canhão tem cinco bolas.

Escreva dois scripts: Cannon no cano e Target em cada alvo.

challenge icon

Desafio

Difícil

Escreva o canhão: mire e, em seguida, dispare cinco bolas.

  1. Em Update(), adicione Input.GetAxisRaw("Vertical") * turnSpeed * Time.deltaTime a angle, limite-o de 10 a 60 e defina transform.rotation = Quaternion.Euler(-angle, 0f, 0f);.
  2. Ao pressionar Espaço, se balls > 0, crie ballPrefab em transform.position + transform.forward e aplique AddForce(transform.forward * power, ForceMode.Impulse).
  3. Subtraia 1 de balls e registre "Balls left: " + balls.

Pressione “Jogar” e dispare. Em seguida, clique em “Verificar”.

Experimente você mesmo

using UnityEngine;

public class Cannon : MonoBehaviour
{
    [SerializeField] private Rigidbody ballPrefab;
    [SerializeField] private float angle = 30f;
    [SerializeField] private float turnSpeed = 40f;
    [SerializeField] private float power = 30f;
    [SerializeField] private int balls = 5;

    void Update()
    {
        // Mire com as setas para cima e para baixo, atire com Space
    }
}

Todas as lições de Física e Jogabilidade

Pratique por conta própria: Playground de Unity