Menu
CoddyTech

Top Atış Alanı

Coddy'nin Unity Journey'sinin Fizik ve Oynanış bölümünün bir parçası. Ders 66 / 71.

Bir atış poligonunun bir ucunda bir top bulunur ve üç hedef, poligon boyunca farklı mesafelerde bir yandan diğer yana kayar. Her mesafeye ulaşmak için namluyu yukarı ve aşağı eğersin ve her atışı, hedef ateş hattını geçerken yapacak şekilde zamanlarsın. Bir hedefe isabet eden top onu devre dışı bırakır ve kendisi de kullanılmış olur; hedefe çarpan diğer her şey ise ona dokunmaz. Hedefler kinematik cisimlerdir, bu yüzden isabetler onları asla itmez ve topta beş gülle bulunur.

İki betik yaz: namluya Cannon, her hedefe Target ekle.

challenge icon

Görev

Zor

Topu yaz: nişan al, ardından beş top ateşle.

  1. Update() içinde Input.GetAxisRaw("Vertical") * turnSpeed * Time.deltaTime değerini angle değerine ekle, 10 ile 60 arasında sınırla ve transform.rotation = Quaternion.Euler(-angle, 0f, 0f); olarak ayarla.
  2. balls > 0 iken Space tuşuna basıldığında, ballPrefab nesnesini transform.position + transform.forward konumunda oluştur ve AddForce(transform.forward * power, ForceMode.Impulse) uygula.
  3. balls değerinden 1 çıkar ve "Balls left: " + balls ifadesini günlüğe yazdır.

“Oyna” düğmesine bas ve ateş et. Ardından “Kontrol et” düğmesine bas.

Kendin dene

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()
    {
        // Yukarı ve aşağı ok tuşlarıyla nişan al, Space ile ateş et
    }
}

Fizik ve Oynanış bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground