Menu
CoddyTech

Başlatma

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

Top, oyuncu topu fırlatana kadar paletin üzerinde bekler. O zamana kadar betik, topu her karede paletin üzerine yerleştirir; böylece palet nereye giderse top da oraya gider ve fırlatılıp fırlatılmadığını bir bool hatırlar. Fırlatma, Rigidbody'nin linearVelocity değerini bir kez ayarlar. Topun Rigidbody'sinde yer çekimi kapalıdır, bu yüzden o andan itibaren bir şeye çarpana kadar bu hızla düz bir çizgide uçar.

Olta şamandırası da aynı şekilde çalışır: atış yapılana kadar oltanın ucunun altında asılı kalır.

bool cast;

void Update()
{
    if (cast) return;
    transform.position = rodTip.position + Vector3.down * 1.5f;
    if (Keyboard.current.spaceKey.wasPressedThisFrame)
    {
        cast = true;
        rb.linearVelocity = new Vector3(4f, 3f, 0f);
    }
}

wasPressedThisFrame yalnızca tuşa basıldığı karede true olur, bu nedenle her karede bir kez çalışan Update() içinde okunur. Şamandıra, (4, 3, 0) vektörünün uzunluğunda, saniyede 5 birim hızla uçar. Herhangi bir yönde tam bir hızla fırlatmak için yönü .normalized ile 1 birim uzunluğa getir, ardından hızla çarp.

challenge icon

Görev

Kolay

Ball içinde:

  1. Bir bool launched ekle.
  2. public void Launch(Vector3 direction) yaz: launched değerini true olarak ayarlasın ve Rigidbody'nin linearVelocity değerini, yönü 1 birim uzunluğa getirip speed ile çarparak ayarlasın.
  3. Update() ekle. Top fırlatılmamışken topu paddle'ın konumunun 0.5 birim üstüne yerleştirir ve Space'e basıldığında Launch(new Vector3(0.3f, 1f, 0f)) çağırır.

Top henüz sekmiyor, bu yüzden çarptığı ilk duvarda tamamen duruyor: bir sonraki ders bunu düzeltiyor.

Play'e bas, paddle'ı hareket ettir, topu fırlat ve ardından Check'e 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şuna basılarak fırlatılana kadar top raketin üzerinde durur.
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

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