Menu
CoddyTech

Fırlatma

Coddy'nin Unity Oyunu: Tuğla Kırma kursunda ders 2 / 19.

Top, oyuncu onu fırlatana kadar raketin üzerinde bekler. O zamana kadar Update() her karede topu raketin üzerine yerleştirir; böylece raket nereye giderse top da oraya gider ve bir bool, topun uçup uçmadığını hatırlar:

void Update()
{
    if (launched) return;
    transform.position = paddle.position + Vector3.up * 0.5f;
}

Topun Rigidbody bileşeninde yer çekimi yoktur; bu yüzden bir kez ayarlanan hız, topun düz uçmasını sağlar. wasPressedThisFrame yalnızca bir tuşa basıldığı karede true olur; bu yüzden onu Update() içinde oku. Herhangi bir yönde tam bir hızla uçmasını sağlamak için yönü .normalized ile 1 birim uzunluğunda yap, ardından çarp: new Vector3(3f, 4f, 0f).normalized * 10f, saniyede 10 birim hızla uçar.

challenge icon

Görev

Kolay

Top, Boşluk tuşu topu fırlatana kadar raketin üzerinde durur.

  1. Ball içine bool launched; ve public void Launch(Vector3 direction) ekle: launched = true; ve rb.linearVelocity = direction.normalized * speed;
  2. Update() içinde, fırlatılmışsa geri dön; değilse topu paddle.position + Vector3.up * 0.5f konumuna yerleştir.
  3. Boşluk tuşu wasPressedThisFrame olduğunda Launch(new Vector3(0.3f, 1f, 0f)) çağır.

“Oyna” düğmesine bas, raketi hareket ettir, ardından Boşluk tuşuna bas: top yukarı uçar ve ilk duvarda durur (sektirme bir sonraki adımda gelecek). Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;
using UnityEngine.InputSystem;

public class Ball : MonoBehaviour
{
    public Transform paddle;
    public float speed = 9f;

    Rigidbody rb;

    void Awake()
    {
        rb = GetComponent<Rigidbody>();
    }

    // Sonraki adım: Space tuşuyla fırlatılana kadar top raketin üzerinde durur.
}

Unity Oyunu: Tuğla Kırma bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground